@3rd-eye-labs/openmm 0.0.1 → 0.1.0

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 (441) hide show
  1. package/dist/cli/cli.js +4 -5
  2. package/dist/cli/cli.js.map +1 -1
  3. package/dist/cli/commands/balance.d.ts.map +1 -1
  4. package/dist/cli/commands/balance.js +1 -1
  5. package/dist/cli/commands/balance.js.map +1 -1
  6. package/dist/cli/commands/grid.d.ts +3 -0
  7. package/dist/cli/commands/grid.d.ts.map +1 -0
  8. package/dist/cli/commands/grid.js +103 -0
  9. package/dist/cli/commands/grid.js.map +1 -0
  10. package/dist/cli/commands/multi-trade.d.ts +3 -0
  11. package/dist/cli/commands/multi-trade.d.ts.map +1 -0
  12. package/dist/cli/commands/multi-trade.js +175 -0
  13. package/dist/cli/commands/multi-trade.js.map +1 -0
  14. package/dist/cli/commands/orderbook.js +1 -1
  15. package/dist/cli/commands/orderbook.js.map +1 -1
  16. package/dist/cli/commands/orders.d.ts.map +1 -1
  17. package/dist/cli/commands/orders.js +3 -4
  18. package/dist/cli/commands/orders.js.map +1 -1
  19. package/dist/cli/commands/pool-discovery.d.ts.map +1 -1
  20. package/dist/cli/commands/pool-discovery.js +2 -4
  21. package/dist/cli/commands/pool-discovery.js.map +1 -1
  22. package/dist/cli/commands/price-comparison.d.ts +3 -0
  23. package/dist/cli/commands/price-comparison.d.ts.map +1 -0
  24. package/dist/cli/commands/price-comparison.js +103 -0
  25. package/dist/cli/commands/price-comparison.js.map +1 -0
  26. package/dist/cli/commands/ticker.d.ts.map +1 -1
  27. package/dist/cli/commands/ticker.js.map +1 -1
  28. package/dist/cli/commands/trade.d.ts.map +1 -1
  29. package/dist/cli/commands/trade.js +135 -18
  30. package/dist/cli/commands/trade.js.map +1 -1
  31. package/dist/cli/commands/trades.d.ts.map +1 -1
  32. package/dist/cli/commands/trades.js +2 -3
  33. package/dist/cli/commands/trades.js.map +1 -1
  34. package/dist/cli/exchange-factory.d.ts.map +1 -1
  35. package/dist/cli/exchange-factory.js +6 -6
  36. package/dist/cli/exchange-factory.js.map +1 -1
  37. package/dist/cli/pool-discovery-core.d.ts.map +1 -1
  38. package/dist/cli/pool-discovery-core.js +3 -9
  39. package/dist/cli/pool-discovery-core.js.map +1 -1
  40. package/dist/cli/pool-discovery.d.ts +56 -0
  41. package/dist/cli/pool-discovery.d.ts.map +1 -0
  42. package/dist/cli/pool-discovery.js +283 -0
  43. package/dist/cli/pool-discovery.js.map +1 -0
  44. package/dist/cli/utils/error-handler.d.ts.map +1 -1
  45. package/dist/cli/utils/error-handler.js +6 -5
  46. package/dist/cli/utils/error-handler.js.map +1 -1
  47. package/dist/config/environment.d.ts.map +1 -1
  48. package/dist/config/environment.js +3 -1
  49. package/dist/config/environment.js.map +1 -1
  50. package/dist/config/launcher-config.d.ts +13 -0
  51. package/dist/config/launcher-config.d.ts.map +1 -1
  52. package/dist/config/launcher-config.js +3 -1
  53. package/dist/config/launcher-config.js.map +1 -1
  54. package/dist/config/price-aggregation.d.ts +1 -1
  55. package/dist/config/price-aggregation.d.ts.map +1 -1
  56. package/dist/config/price-aggregation.js +20 -20
  57. package/dist/config/price-aggregation.js.map +1 -1
  58. package/dist/core/exchange/base-exchange-connector.d.ts.map +1 -1
  59. package/dist/core/exchange/base-exchange-connector.js +1 -5
  60. package/dist/core/exchange/base-exchange-connector.js.map +1 -1
  61. package/dist/core/exchange/base-exchange-data-mapper.d.ts.map +1 -1
  62. package/dist/core/exchange/base-exchange-data-mapper.js +1 -1
  63. package/dist/core/exchange/base-exchange-data-mapper.js.map +1 -1
  64. package/dist/core/price-aggregation/cardano-price-service.d.ts +2 -2
  65. package/dist/core/price-aggregation/cardano-price-service.d.ts.map +1 -1
  66. package/dist/core/price-aggregation/cardano-price-service.js +13 -13
  67. package/dist/core/price-aggregation/cardano-price-service.js.map +1 -1
  68. package/dist/core/price-aggregation/index.d.ts +1 -1
  69. package/dist/core/price-aggregation/index.d.ts.map +1 -1
  70. package/dist/core/price-aggregation/iris-api-client.d.ts.map +1 -1
  71. package/dist/core/price-aggregation/iris-api-client.js +5 -5
  72. package/dist/core/price-aggregation/iris-api-client.js.map +1 -1
  73. package/dist/core/price-aggregation/iris-pool-discovery.d.ts +2 -2
  74. package/dist/core/price-aggregation/iris-pool-discovery.d.ts.map +1 -1
  75. package/dist/core/price-aggregation/iris-pool-discovery.js +3 -3
  76. package/dist/core/price-aggregation/iris-pool-discovery.js.map +1 -1
  77. package/dist/core/price-aggregation/multi-exchange-price-service.d.ts +38 -0
  78. package/dist/core/price-aggregation/multi-exchange-price-service.d.ts.map +1 -0
  79. package/dist/core/price-aggregation/multi-exchange-price-service.js +123 -0
  80. package/dist/core/price-aggregation/multi-exchange-price-service.js.map +1 -0
  81. package/dist/core/price-aggregation/price-cache.d.ts +55 -0
  82. package/dist/core/price-aggregation/price-cache.d.ts.map +1 -0
  83. package/dist/core/price-aggregation/price-cache.js +152 -0
  84. package/dist/core/price-aggregation/price-cache.js.map +1 -0
  85. package/dist/core/price-aggregation/price-calculator.d.ts.map +1 -1
  86. package/dist/core/price-aggregation/price-calculator.js +3 -3
  87. package/dist/core/price-aggregation/price-calculator.js.map +1 -1
  88. package/dist/core/risk-management/risk-manager.d.ts.map +1 -1
  89. package/dist/core/risk-management/risk-manager.js +2 -2
  90. package/dist/core/risk-management/risk-manager.js.map +1 -1
  91. package/dist/core/strategy/strategy-factory.d.ts +5 -0
  92. package/dist/core/strategy/strategy-factory.d.ts.map +1 -1
  93. package/dist/core/strategy/strategy-factory.js +127 -5
  94. package/dist/core/strategy/strategy-factory.js.map +1 -1
  95. package/dist/examples/mexc-connector-comprehensive-test.d.ts +15 -0
  96. package/dist/examples/mexc-connector-comprehensive-test.d.ts.map +1 -0
  97. package/dist/examples/mexc-connector-comprehensive-test.js +514 -0
  98. package/dist/examples/mexc-connector-comprehensive-test.js.map +1 -0
  99. package/dist/examples/mexc-order-update-test.d.ts +4 -0
  100. package/dist/examples/mexc-order-update-test.d.ts.map +1 -0
  101. package/dist/examples/mexc-order-update-test.js +186 -0
  102. package/dist/examples/mexc-order-update-test.js.map +1 -0
  103. package/dist/examples/mexc-test.d.ts +9 -0
  104. package/dist/examples/mexc-test.d.ts.map +1 -0
  105. package/dist/examples/mexc-test.js +218 -0
  106. package/dist/examples/mexc-test.js.map +1 -0
  107. package/dist/examples/mexc-trades-debug.d.ts +2 -0
  108. package/dist/examples/mexc-trades-debug.d.ts.map +1 -0
  109. package/dist/examples/mexc-trades-debug.js +101 -0
  110. package/dist/examples/mexc-trades-debug.js.map +1 -0
  111. package/dist/examples/mexc-trades-subscription-debug.d.ts +2 -0
  112. package/dist/examples/mexc-trades-subscription-debug.d.ts.map +1 -0
  113. package/dist/examples/mexc-trades-subscription-debug.js +150 -0
  114. package/dist/examples/mexc-trades-subscription-debug.js.map +1 -0
  115. package/dist/examples/mexc-websocket-test.d.ts +8 -0
  116. package/dist/examples/mexc-websocket-test.d.ts.map +1 -0
  117. package/dist/examples/mexc-websocket-test.js +115 -0
  118. package/dist/examples/mexc-websocket-test.js.map +1 -0
  119. package/dist/examples/test-protobuf-status-detection.d.ts +9 -0
  120. package/dist/examples/test-protobuf-status-detection.d.ts.map +1 -0
  121. package/dist/examples/test-protobuf-status-detection.js +83 -0
  122. package/dist/examples/test-protobuf-status-detection.js.map +1 -0
  123. package/dist/exchanges/base-exchange-connector.d.ts +33 -0
  124. package/dist/exchanges/base-exchange-connector.d.ts.map +1 -0
  125. package/dist/exchanges/base-exchange-connector.js +55 -0
  126. package/dist/exchanges/base-exchange-connector.js.map +1 -0
  127. package/dist/exchanges/bitget/bitget-auth.d.ts +66 -0
  128. package/dist/exchanges/bitget/bitget-auth.d.ts.map +1 -0
  129. package/dist/exchanges/bitget/bitget-auth.js +203 -0
  130. package/dist/exchanges/bitget/bitget-auth.js.map +1 -0
  131. package/dist/exchanges/bitget/bitget-connector.d.ts +255 -0
  132. package/dist/exchanges/bitget/bitget-connector.d.ts.map +1 -0
  133. package/dist/exchanges/bitget/bitget-connector.js +709 -0
  134. package/dist/exchanges/bitget/bitget-connector.js.map +1 -0
  135. package/dist/exchanges/bitget/bitget-data-mapper.d.ts +47 -0
  136. package/dist/exchanges/bitget/bitget-data-mapper.d.ts.map +1 -0
  137. package/dist/exchanges/bitget/bitget-data-mapper.js +147 -0
  138. package/dist/exchanges/bitget/bitget-data-mapper.js.map +1 -0
  139. package/dist/exchanges/bitget/bitget-user-stream.d.ts +126 -0
  140. package/dist/exchanges/bitget/bitget-user-stream.d.ts.map +1 -0
  141. package/dist/exchanges/bitget/bitget-user-stream.js +474 -0
  142. package/dist/exchanges/bitget/bitget-user-stream.js.map +1 -0
  143. package/dist/exchanges/bitget/bitget-utils.d.ts +17 -0
  144. package/dist/exchanges/bitget/bitget-utils.d.ts.map +1 -0
  145. package/dist/exchanges/bitget/bitget-utils.js +60 -0
  146. package/dist/exchanges/bitget/bitget-utils.js.map +1 -0
  147. package/dist/exchanges/bitget/bitget-websocket.d.ts +124 -0
  148. package/dist/exchanges/bitget/bitget-websocket.d.ts.map +1 -0
  149. package/dist/exchanges/bitget/bitget-websocket.js +434 -0
  150. package/dist/exchanges/bitget/bitget-websocket.js.map +1 -0
  151. package/dist/exchanges/gateio/gateio-auth.d.ts +69 -0
  152. package/dist/exchanges/gateio/gateio-auth.d.ts.map +1 -0
  153. package/dist/exchanges/gateio/gateio-auth.js +205 -0
  154. package/dist/exchanges/gateio/gateio-auth.js.map +1 -0
  155. package/dist/exchanges/gateio/gateio-connector.d.ts +182 -0
  156. package/dist/exchanges/gateio/gateio-connector.d.ts.map +1 -0
  157. package/dist/exchanges/gateio/gateio-connector.js +605 -0
  158. package/dist/exchanges/gateio/gateio-connector.js.map +1 -0
  159. package/dist/exchanges/gateio/gateio-data-mapper.d.ts +57 -0
  160. package/dist/exchanges/gateio/gateio-data-mapper.d.ts.map +1 -0
  161. package/dist/exchanges/gateio/gateio-data-mapper.js +184 -0
  162. package/dist/exchanges/gateio/gateio-data-mapper.js.map +1 -0
  163. package/dist/exchanges/gateio/gateio-user-stream.d.ts +120 -0
  164. package/dist/exchanges/gateio/gateio-user-stream.d.ts.map +1 -0
  165. package/dist/exchanges/gateio/gateio-user-stream.js +384 -0
  166. package/dist/exchanges/gateio/gateio-user-stream.js.map +1 -0
  167. package/dist/exchanges/gateio/gateio-utils.d.ts +45 -0
  168. package/dist/exchanges/gateio/gateio-utils.d.ts.map +1 -0
  169. package/dist/exchanges/gateio/gateio-utils.js +138 -0
  170. package/dist/exchanges/gateio/gateio-utils.js.map +1 -0
  171. package/dist/exchanges/gateio/gateio-websocket.d.ts +145 -0
  172. package/dist/exchanges/gateio/gateio-websocket.d.ts.map +1 -0
  173. package/dist/exchanges/gateio/gateio-websocket.js +469 -0
  174. package/dist/exchanges/gateio/gateio-websocket.js.map +1 -0
  175. package/dist/exchanges/kraken/kraken-auth.d.ts +12 -0
  176. package/dist/exchanges/kraken/kraken-auth.d.ts.map +1 -0
  177. package/dist/exchanges/kraken/kraken-auth.js +68 -0
  178. package/dist/exchanges/kraken/kraken-auth.js.map +1 -0
  179. package/dist/exchanges/kraken/kraken-connector.d.ts +38 -0
  180. package/dist/exchanges/kraken/kraken-connector.d.ts.map +1 -0
  181. package/dist/exchanges/kraken/kraken-connector.js +355 -0
  182. package/dist/exchanges/kraken/kraken-connector.js.map +1 -0
  183. package/dist/exchanges/kraken/kraken-data-mapper.d.ts +14 -0
  184. package/dist/exchanges/kraken/kraken-data-mapper.d.ts.map +1 -0
  185. package/dist/exchanges/kraken/kraken-data-mapper.js +169 -0
  186. package/dist/exchanges/kraken/kraken-data-mapper.js.map +1 -0
  187. package/dist/exchanges/kraken/kraken-utils.d.ts +52 -0
  188. package/dist/exchanges/kraken/kraken-utils.d.ts.map +1 -0
  189. package/dist/exchanges/kraken/kraken-utils.js +206 -0
  190. package/dist/exchanges/kraken/kraken-utils.js.map +1 -0
  191. package/dist/exchanges/kraken/kraken-websocket.d.ts +64 -0
  192. package/dist/exchanges/kraken/kraken-websocket.d.ts.map +1 -0
  193. package/dist/exchanges/kraken/kraken-websocket.js +667 -0
  194. package/dist/exchanges/kraken/kraken-websocket.js.map +1 -0
  195. package/dist/exchanges/kraken/test-kraken-websocket.d.ts +19 -0
  196. package/dist/exchanges/kraken/test-kraken-websocket.d.ts.map +1 -0
  197. package/dist/exchanges/kraken/test-kraken-websocket.js +413 -0
  198. package/dist/exchanges/kraken/test-kraken-websocket.js.map +1 -0
  199. package/dist/exchanges/mexc/mexc-auth.d.ts.map +1 -1
  200. package/dist/exchanges/mexc/mexc-auth.js +5 -5
  201. package/dist/exchanges/mexc/mexc-auth.js.map +1 -1
  202. package/dist/exchanges/mexc/mexc-connector.d.ts.map +1 -1
  203. package/dist/exchanges/mexc/mexc-connector.js +12 -13
  204. package/dist/exchanges/mexc/mexc-connector.js.map +1 -1
  205. package/dist/exchanges/mexc/mexc-data-mapper.d.ts.map +1 -1
  206. package/dist/exchanges/mexc/mexc-data-mapper.js +6 -6
  207. package/dist/exchanges/mexc/mexc-data-mapper.js.map +1 -1
  208. package/dist/exchanges/mexc/mexc-protobuf-decoder.d.ts.map +1 -1
  209. package/dist/exchanges/mexc/mexc-protobuf-decoder.js +14 -13
  210. package/dist/exchanges/mexc/mexc-protobuf-decoder.js.map +1 -1
  211. package/dist/exchanges/mexc/mexc-user-stream.d.ts.map +1 -1
  212. package/dist/exchanges/mexc/mexc-user-stream.js +5 -5
  213. package/dist/exchanges/mexc/mexc-user-stream.js.map +1 -1
  214. package/dist/exchanges/mexc/mexc-utils.d.ts +1 -5
  215. package/dist/exchanges/mexc/mexc-utils.d.ts.map +1 -1
  216. package/dist/exchanges/mexc/mexc-utils.js +33 -39
  217. package/dist/exchanges/mexc/mexc-utils.js.map +1 -1
  218. package/dist/exchanges/mexc/mexc-websocket.d.ts.map +1 -1
  219. package/dist/exchanges/mexc/mexc-websocket.js +45 -31
  220. package/dist/exchanges/mexc/mexc-websocket.js.map +1 -1
  221. package/dist/index.d.ts +4 -0
  222. package/dist/index.d.ts.map +1 -1
  223. package/dist/index.js +10 -1
  224. package/dist/index.js.map +1 -1
  225. package/dist/mcp/resources/index.d.ts +3 -0
  226. package/dist/mcp/resources/index.d.ts.map +1 -0
  227. package/dist/mcp/resources/index.js +11 -0
  228. package/dist/mcp/resources/index.js.map +1 -0
  229. package/dist/mcp/server.d.ts +4 -0
  230. package/dist/mcp/server.d.ts.map +1 -0
  231. package/dist/mcp/server.js +29 -0
  232. package/dist/mcp/server.js.map +1 -0
  233. package/dist/mcp/tools/index.d.ts +3 -0
  234. package/dist/mcp/tools/index.d.ts.map +1 -0
  235. package/dist/mcp/tools/index.js +12 -0
  236. package/dist/mcp/tools/index.js.map +1 -0
  237. package/dist/strategies/grid/grid-calculator.d.ts +63 -4
  238. package/dist/strategies/grid/grid-calculator.d.ts.map +1 -1
  239. package/dist/strategies/grid/grid-calculator.js +190 -15
  240. package/dist/strategies/grid/grid-calculator.js.map +1 -1
  241. package/dist/strategies/grid/grid-order-manager.d.ts +9 -4
  242. package/dist/strategies/grid/grid-order-manager.d.ts.map +1 -1
  243. package/dist/strategies/grid/grid-order-manager.js +58 -15
  244. package/dist/strategies/grid/grid-order-manager.js.map +1 -1
  245. package/dist/strategies/grid/grid-strategy.d.ts +11 -0
  246. package/dist/strategies/grid/grid-strategy.d.ts.map +1 -1
  247. package/dist/strategies/grid/grid-strategy.js +127 -20
  248. package/dist/strategies/grid/grid-strategy.js.map +1 -1
  249. package/dist/strategies/grid/volatility-tracker.d.ts +67 -0
  250. package/dist/strategies/grid/volatility-tracker.d.ts.map +1 -0
  251. package/dist/strategies/grid/volatility-tracker.js +109 -0
  252. package/dist/strategies/grid/volatility-tracker.js.map +1 -0
  253. package/dist/tests/fixtures/test-helpers.d.ts +5 -0
  254. package/dist/tests/fixtures/test-helpers.d.ts.map +1 -0
  255. package/dist/tests/fixtures/test-helpers.js +8 -0
  256. package/dist/tests/fixtures/test-helpers.js.map +1 -0
  257. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts +2 -0
  258. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts.map +1 -0
  259. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js +237 -0
  260. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js.map +1 -0
  261. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts +2 -0
  262. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts.map +1 -0
  263. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js +57 -0
  264. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js.map +1 -0
  265. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts +2 -0
  266. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts.map +1 -0
  267. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js +141 -0
  268. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js.map +1 -0
  269. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts +2 -0
  270. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts.map +1 -0
  271. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js +375 -0
  272. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js.map +1 -0
  273. package/dist/tests/unit/cli/exchange-factory.test.d.ts +2 -0
  274. package/dist/tests/unit/cli/exchange-factory.test.d.ts.map +1 -0
  275. package/dist/tests/unit/cli/exchange-factory.test.js +148 -0
  276. package/dist/tests/unit/cli/exchange-factory.test.js.map +1 -0
  277. package/dist/tests/unit/config/environment.test.d.ts +2 -0
  278. package/dist/tests/unit/config/environment.test.d.ts.map +1 -0
  279. package/dist/tests/unit/config/environment.test.js +158 -0
  280. package/dist/tests/unit/config/environment.test.js.map +1 -0
  281. package/dist/tests/unit/config/launcher-config.test.d.ts +2 -0
  282. package/dist/tests/unit/config/launcher-config.test.d.ts.map +1 -0
  283. package/dist/tests/unit/config/launcher-config.test.js +117 -0
  284. package/dist/tests/unit/config/launcher-config.test.js.map +1 -0
  285. package/dist/tests/unit/config/price-aggregation.test.d.ts +2 -0
  286. package/dist/tests/unit/config/price-aggregation.test.d.ts.map +1 -0
  287. package/dist/tests/unit/config/price-aggregation.test.js +144 -0
  288. package/dist/tests/unit/config/price-aggregation.test.js.map +1 -0
  289. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts +2 -0
  290. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts.map +1 -0
  291. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js +191 -0
  292. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js.map +1 -0
  293. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts +2 -0
  294. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts.map +1 -0
  295. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js +324 -0
  296. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js.map +1 -0
  297. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts +2 -0
  298. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts.map +1 -0
  299. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js +177 -0
  300. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js.map +1 -0
  301. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts +2 -0
  302. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts.map +1 -0
  303. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js +168 -0
  304. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js.map +1 -0
  305. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts +2 -0
  306. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts.map +1 -0
  307. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js +217 -0
  308. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js.map +1 -0
  309. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts +2 -0
  310. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts.map +1 -0
  311. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js +229 -0
  312. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js.map +1 -0
  313. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts +2 -0
  314. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts.map +1 -0
  315. package/dist/tests/unit/core/risk-management/risk-manager.test.js +194 -0
  316. package/dist/tests/unit/core/risk-management/risk-manager.test.js.map +1 -0
  317. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts +2 -0
  318. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts.map +1 -0
  319. package/dist/tests/unit/core/strategy/base-strategy.test.js +254 -0
  320. package/dist/tests/unit/core/strategy/base-strategy.test.js.map +1 -0
  321. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts +2 -0
  322. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts.map +1 -0
  323. package/dist/tests/unit/core/strategy/strategy-factory.test.js +213 -0
  324. package/dist/tests/unit/core/strategy/strategy-factory.test.js.map +1 -0
  325. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts +2 -0
  326. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts.map +1 -0
  327. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js +452 -0
  328. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js.map +1 -0
  329. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts +2 -0
  330. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts.map +1 -0
  331. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js +1419 -0
  332. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js.map +1 -0
  333. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts +2 -0
  334. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts.map +1 -0
  335. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js +435 -0
  336. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js.map +1 -0
  337. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts +2 -0
  338. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts.map +1 -0
  339. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js +314 -0
  340. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js.map +1 -0
  341. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts +2 -0
  342. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts.map +1 -0
  343. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js +178 -0
  344. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js.map +1 -0
  345. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts +2 -0
  346. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts.map +1 -0
  347. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js +502 -0
  348. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js.map +1 -0
  349. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts +2 -0
  350. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts.map +1 -0
  351. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js +317 -0
  352. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js.map +1 -0
  353. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts +2 -0
  354. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts.map +1 -0
  355. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js +843 -0
  356. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js.map +1 -0
  357. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts +2 -0
  358. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts.map +1 -0
  359. package/dist/tests/unit/strategies/grid/grid-calculator.test.js +67 -0
  360. package/dist/tests/unit/strategies/grid/grid-calculator.test.js.map +1 -0
  361. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts +2 -0
  362. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts.map +1 -0
  363. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js +211 -0
  364. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js.map +1 -0
  365. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts +2 -0
  366. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts.map +1 -0
  367. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js +197 -0
  368. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js.map +1 -0
  369. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts +2 -0
  370. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts.map +1 -0
  371. package/dist/tests/unit/strategies/grid/grid-strategy.test.js +429 -0
  372. package/dist/tests/unit/strategies/grid/grid-strategy.test.js.map +1 -0
  373. package/dist/tests/unit/utils/logger.test.d.ts +2 -0
  374. package/dist/tests/unit/utils/logger.test.d.ts.map +1 -0
  375. package/dist/tests/unit/utils/logger.test.js +260 -0
  376. package/dist/tests/unit/utils/logger.test.js.map +1 -0
  377. package/dist/tests/unit/utils/symbol-utils.test.d.ts +2 -0
  378. package/dist/tests/unit/utils/symbol-utils.test.d.ts.map +1 -0
  379. package/dist/tests/unit/utils/symbol-utils.test.js +178 -0
  380. package/dist/tests/unit/utils/symbol-utils.test.js.map +1 -0
  381. package/dist/types/bitget-raw.d.ts +75 -0
  382. package/dist/types/bitget-raw.d.ts.map +1 -0
  383. package/dist/types/bitget-raw.js +10 -0
  384. package/dist/types/bitget-raw.js.map +1 -0
  385. package/dist/types/bitget.d.ts +35 -0
  386. package/dist/types/bitget.d.ts.map +1 -0
  387. package/dist/types/bitget.js +8 -0
  388. package/dist/types/bitget.js.map +1 -0
  389. package/dist/types/gateio-raw.d.ts +104 -0
  390. package/dist/types/gateio-raw.d.ts.map +1 -0
  391. package/dist/types/gateio-raw.js +7 -0
  392. package/dist/types/gateio-raw.js.map +1 -0
  393. package/dist/types/gateio.d.ts +41 -0
  394. package/dist/types/gateio.d.ts.map +1 -0
  395. package/dist/types/gateio.js +8 -0
  396. package/dist/types/gateio.js.map +1 -0
  397. package/dist/types/grid.d.ts +77 -0
  398. package/dist/types/grid.d.ts.map +1 -1
  399. package/dist/types/index.d.ts +6 -0
  400. package/dist/types/index.d.ts.map +1 -1
  401. package/dist/types/index.js +6 -0
  402. package/dist/types/index.js.map +1 -1
  403. package/dist/types/kraken-raw.d.ts +89 -0
  404. package/dist/types/kraken-raw.d.ts.map +1 -0
  405. package/dist/types/kraken-raw.js +10 -0
  406. package/dist/types/kraken-raw.js.map +1 -0
  407. package/dist/types/kraken.d.ts +44 -0
  408. package/dist/types/kraken.d.ts.map +1 -0
  409. package/dist/types/kraken.js +3 -0
  410. package/dist/types/kraken.js.map +1 -0
  411. package/dist/types/mexc.d.ts +9 -0
  412. package/dist/types/mexc.d.ts.map +1 -1
  413. package/dist/types/price-aggregation.d.ts +31 -0
  414. package/dist/types/price-aggregation.d.ts.map +1 -0
  415. package/dist/types/price-aggregation.js +6 -0
  416. package/dist/types/price-aggregation.js.map +1 -0
  417. package/dist/types/price.d.ts +23 -0
  418. package/dist/types/price.d.ts.map +1 -1
  419. package/dist/types/strategy.d.ts +5 -0
  420. package/dist/types/strategy.d.ts.map +1 -1
  421. package/dist/utils/crypto.d.ts +15 -0
  422. package/dist/utils/crypto.d.ts.map +1 -0
  423. package/dist/utils/crypto.js +50 -0
  424. package/dist/utils/crypto.js.map +1 -0
  425. package/dist/utils/exchange-utils.d.ts +194 -0
  426. package/dist/utils/exchange-utils.d.ts.map +1 -0
  427. package/dist/utils/exchange-utils.js +455 -0
  428. package/dist/utils/exchange-utils.js.map +1 -0
  429. package/dist/utils/index.d.ts +1 -0
  430. package/dist/utils/index.d.ts.map +1 -1
  431. package/dist/utils/index.js +3 -1
  432. package/dist/utils/index.js.map +1 -1
  433. package/dist/utils/logger.d.ts +1 -1
  434. package/dist/utils/logger.d.ts.map +1 -1
  435. package/dist/utils/logger.js +7 -7
  436. package/dist/utils/logger.js.map +1 -1
  437. package/dist/utils/validation.d.ts +36 -0
  438. package/dist/utils/validation.d.ts.map +1 -0
  439. package/dist/utils/validation.js +174 -0
  440. package/dist/utils/validation.js.map +1 -0
  441. package/package.json +7 -1
@@ -0,0 +1,384 @@
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.GateioUserDataStream = void 0;
7
+ const ws_1 = __importDefault(require("ws"));
8
+ const gateio_data_mapper_1 = require("./gateio-data-mapper");
9
+ const gateio_utils_1 = require("./gateio-utils");
10
+ const gateio_auth_1 = require("./gateio-auth");
11
+ const utils_1 = require("../../utils");
12
+ /**
13
+ * Gate.io User Data Stream
14
+ *
15
+ * Handles authenticated WebSocket connections for private user data including:
16
+ * - Order updates (spot.orders channel)
17
+ * - Trade executions (spot.usertrades channel)
18
+ * - Account balance updates (spot.balances channel)
19
+ *
20
+ * Gate.io WebSocket API v4 for User Data:
21
+ * - Uses same WebSocket endpoint as public data: wss://api.gateio.ws/ws/v4/
22
+ * - Authentication required for private channels
23
+ * - Real-time updates for user-specific data
24
+ */
25
+ class GateioUserDataStream {
26
+ constructor(credentials, wsUrl = 'wss://api.gateio.ws/ws/v4/') {
27
+ this.subscriptions = new Map();
28
+ this.status = 'disconnected';
29
+ this.logger = (0, utils_1.createLogger)('gateio-user-stream');
30
+ this.reconnectAttempts = 0;
31
+ this.maxReconnectAttempts = 5;
32
+ this.reconnectDelay = 5000;
33
+ this.autoReconnect = true;
34
+ this.pingInterval = 30000;
35
+ this.dataMapper = new gateio_data_mapper_1.GateioDataMapper();
36
+ this.isAuthenticated = false;
37
+ this.wsUrl = wsUrl;
38
+ this.credentials = credentials;
39
+ this.auth = new gateio_auth_1.GateioAuth(credentials, 'https://api.gateio.ws');
40
+ }
41
+ /**
42
+ * Connect to Gate.io User Data Stream with authentication
43
+ *
44
+ * @returns Promise that resolves when connection is established and authenticated
45
+ */
46
+ async connectUserDataStream() {
47
+ return new Promise((resolve, reject) => {
48
+ try {
49
+ this.autoReconnect = true;
50
+ this.ws = new ws_1.default(this.wsUrl);
51
+ this.status = 'connecting';
52
+ this.ws.on('open', () => this.onOpen(resolve, reject));
53
+ this.ws.on('message', (data) => this.onMessage(data));
54
+ this.ws.on('close', () => this.onClose());
55
+ this.ws.on('error', error => this.onError(error, reject));
56
+ }
57
+ catch (error) {
58
+ this.status = 'error';
59
+ reject(error);
60
+ }
61
+ });
62
+ }
63
+ /**
64
+ * WebSocket open event handler
65
+ */
66
+ onOpen(resolve, reject) {
67
+ this.status = 'connected';
68
+ this.isAuthenticated = true; // Authentication happens per-subscription
69
+ this.reconnectAttempts = 0;
70
+ this.startPing();
71
+ this.logger.info('✅ Gate.io User Data Stream connected successfully');
72
+ this.resubscribeAll()
73
+ .then(() => {
74
+ resolve();
75
+ })
76
+ .catch(error => {
77
+ this.logger.error('❌ Failed to resubscribe:', { error });
78
+ reject(error instanceof Error ? error : new Error('Resubscription failed'));
79
+ });
80
+ }
81
+ /**
82
+ * WebSocket close event handler
83
+ */
84
+ onClose() {
85
+ this.status = 'disconnected';
86
+ this.isAuthenticated = false;
87
+ this.stopPing();
88
+ if (this.autoReconnect && this.reconnectAttempts < this.maxReconnectAttempts) {
89
+ this.scheduleReconnect();
90
+ }
91
+ else if (this.reconnectAttempts >= this.maxReconnectAttempts) {
92
+ this.logger.error('❌ Max reconnection attempts reached, giving up');
93
+ }
94
+ }
95
+ /**
96
+ * WebSocket error event handler
97
+ */
98
+ onError(error, reject) {
99
+ this.status = 'error';
100
+ this.logger.error('❌ Gate.io User Data Stream error:', { error: error.message });
101
+ if (this.reconnectAttempts === 0 && reject) {
102
+ reject(error);
103
+ }
104
+ }
105
+ /**
106
+ * WebSocket message handler
107
+ */
108
+ onMessage(data) {
109
+ try {
110
+ const message = data.toString();
111
+ const parsedMessage = JSON.parse(message);
112
+ if (parsedMessage.channel === 'spot.pong') {
113
+ return;
114
+ }
115
+ if (parsedMessage.event === 'subscribe') {
116
+ if (parsedMessage.result?.status === 'fail') {
117
+ const errorMsg = parsedMessage.error?.message || 'Unknown error';
118
+ if (errorMsg.includes('INVALID_KEY')) {
119
+ this.logger.error('🔑 Authentication failed: Invalid API credentials provided for private channel subscription');
120
+ }
121
+ }
122
+ return;
123
+ }
124
+ if (parsedMessage.event === 'update' && parsedMessage.result) {
125
+ this.processPrivateChannelData(parsedMessage);
126
+ }
127
+ }
128
+ catch (error) {
129
+ this.logger.error('❌ Error processing Gate.io User Data Stream message:', {
130
+ error,
131
+ message: data.toString().substring(0, 200),
132
+ });
133
+ }
134
+ }
135
+ /**
136
+ * Process private channel data messages
137
+ */
138
+ processPrivateChannelData(message) {
139
+ try {
140
+ const { channel, result } = message;
141
+ if (!channel || !result) {
142
+ return;
143
+ }
144
+ if (channel === 'spot.orders') {
145
+ this.handleOrderUpdates(result);
146
+ }
147
+ else if (channel === 'spot.usertrades') {
148
+ this.handleUserTradeUpdates(result);
149
+ }
150
+ else if (channel === 'spot.balances') {
151
+ this.handleBalanceUpdates(result);
152
+ }
153
+ }
154
+ catch (error) {
155
+ this.logger.error('❌ Error processing private channel data:', { error, message });
156
+ }
157
+ }
158
+ /**
159
+ * Handle order status updates from spot.orders channel
160
+ */
161
+ handleOrderUpdates(result) {
162
+ try {
163
+ if (!Array.isArray(result))
164
+ return;
165
+ result.forEach((orderData) => {
166
+ const order = this.dataMapper.mapWebSocketOrder(orderData);
167
+ const symbol = gateio_utils_1.GateioUtils.fromGateioSymbol(orderData.currency_pair);
168
+ this.subscriptions.forEach(subscription => {
169
+ if (subscription.type === 'orders' &&
170
+ (subscription.symbol === symbol || subscription.symbol === 'all')) {
171
+ subscription.callback(order);
172
+ }
173
+ });
174
+ });
175
+ }
176
+ catch (error) {
177
+ this.logger.error('❌ Error handling order updates:', { error, result });
178
+ }
179
+ }
180
+ /**
181
+ * Handle user trade execution updates from spot.usertrades channel
182
+ */
183
+ handleUserTradeUpdates(result) {
184
+ try {
185
+ if (!Array.isArray(result))
186
+ return;
187
+ result.forEach((tradeData) => {
188
+ const trade = this.dataMapper.mapTrade(tradeData, tradeData.currency_pair);
189
+ const symbol = gateio_utils_1.GateioUtils.fromGateioSymbol(tradeData.currency_pair);
190
+ this.subscriptions.forEach(subscription => {
191
+ if (subscription.type === 'usertrades' &&
192
+ (subscription.symbol === symbol || subscription.symbol === 'all')) {
193
+ subscription.callback(trade);
194
+ }
195
+ });
196
+ });
197
+ }
198
+ catch (error) {
199
+ this.logger.error('❌ Error handling user trade updates:', { error, result });
200
+ }
201
+ }
202
+ /**
203
+ * Handle balance updates from spot.balances channel
204
+ */
205
+ handleBalanceUpdates(result) {
206
+ try {
207
+ if (!Array.isArray(result))
208
+ return;
209
+ const balances = this.dataMapper.mapAccountBalances(result);
210
+ this.subscriptions.forEach(subscription => {
211
+ if (subscription.type === 'balances') {
212
+ subscription.callback(balances);
213
+ }
214
+ });
215
+ }
216
+ catch (error) {
217
+ this.logger.error('❌ Error handling balance updates:', { error, result });
218
+ }
219
+ }
220
+ /**
221
+ * Subscribe to real-time user order updates
222
+ *
223
+ * @param callback - Function called when user's order status changes
224
+ * @param symbol - Optional trading pair symbol or 'all' for all symbols
225
+ * @returns Promise resolving to subscription ID
226
+ */
227
+ async subscribeUserOrders(callback, symbol = 'all') {
228
+ if (!this.isAuthenticated) {
229
+ throw new Error('Authentication required for user order subscriptions');
230
+ }
231
+ const subscriptionId = `user_orders_${symbol}_${Date.now()}`;
232
+ const payload = symbol === 'all' ? ['!all'] : [gateio_utils_1.GateioUtils.toGateioSymbol(symbol)];
233
+ this.subscriptions.set(subscriptionId, {
234
+ callback,
235
+ type: 'orders',
236
+ symbol,
237
+ channel: 'spot.orders',
238
+ });
239
+ await this.subscribe('spot.orders', payload);
240
+ return subscriptionId;
241
+ }
242
+ /**
243
+ * Subscribe to real-time user trade execution updates
244
+ *
245
+ * @param callback - Function called when user's trades are executed
246
+ * @param symbol - Optional trading pair symbol or 'all' for all symbols
247
+ * @returns Promise resolving to subscription ID
248
+ */
249
+ async subscribeUserTrades(callback, symbol = 'all') {
250
+ if (!this.isAuthenticated) {
251
+ throw new Error('Authentication required for user trade subscriptions');
252
+ }
253
+ const subscriptionId = `user_trades_${symbol}_${Date.now()}`;
254
+ const payload = symbol === 'all' ? ['!all'] : [gateio_utils_1.GateioUtils.toGateioSymbol(symbol)];
255
+ this.subscriptions.set(subscriptionId, {
256
+ callback,
257
+ type: 'usertrades',
258
+ symbol,
259
+ channel: 'spot.usertrades',
260
+ });
261
+ await this.subscribe('spot.usertrades', payload);
262
+ return subscriptionId;
263
+ }
264
+ /**
265
+ * Send subscription message to Gate.io with authentication
266
+ */
267
+ async subscribe(channel, payload) {
268
+ if (this.status !== 'connected' || !this.ws) {
269
+ throw new Error('User Data Stream not connected');
270
+ }
271
+ const timestamp = Math.floor(Date.now() / 1000);
272
+ const signature = this.auth.generateWebSocketSignature(channel, 'subscribe', timestamp);
273
+ const message = {
274
+ time: timestamp,
275
+ channel,
276
+ event: 'subscribe',
277
+ payload,
278
+ auth: {
279
+ method: 'api_key',
280
+ KEY: this.credentials.apiKey,
281
+ SIGN: signature,
282
+ },
283
+ };
284
+ this.sendMessage(message);
285
+ }
286
+ /**
287
+ * Send message to Gate.io WebSocket
288
+ */
289
+ sendMessage(message) {
290
+ if (this.ws && this.status === 'connected') {
291
+ this.ws.send(JSON.stringify(message));
292
+ }
293
+ }
294
+ /**
295
+ * Schedule reconnection attempt
296
+ */
297
+ scheduleReconnect() {
298
+ this.reconnectAttempts++;
299
+ this.reconnectTimer = setTimeout(async () => {
300
+ try {
301
+ await this.connectUserDataStream();
302
+ }
303
+ catch (error) {
304
+ this.logger.error('❌ User stream reconnection failed:', { error });
305
+ }
306
+ }, this.reconnectDelay);
307
+ }
308
+ /**
309
+ * Resubscribe to all active subscriptions
310
+ */
311
+ async resubscribeAll() {
312
+ if (this.subscriptions.size === 0)
313
+ return;
314
+ if (!this.isAuthenticated) {
315
+ await new Promise(resolve => setTimeout(resolve, 1000));
316
+ }
317
+ for (const [id, subscription] of this.subscriptions) {
318
+ try {
319
+ const { symbol, channel } = subscription;
320
+ let payload;
321
+ if (symbol === 'all') {
322
+ payload = ['!all'];
323
+ }
324
+ else {
325
+ payload = [gateio_utils_1.GateioUtils.toGateioSymbol(symbol)];
326
+ }
327
+ await this.subscribe(channel, payload);
328
+ }
329
+ catch (error) {
330
+ this.logger.error('❌ Failed to resubscribe to private channel:', { id, error });
331
+ }
332
+ }
333
+ }
334
+ /**
335
+ * Start ping interval to keep connection alive
336
+ */
337
+ startPing() {
338
+ this.pingTimer = setInterval(() => {
339
+ if (this.ws && this.status === 'connected') {
340
+ const pingMessage = {
341
+ time: Math.floor(Date.now() / 1000),
342
+ channel: 'spot.ping',
343
+ event: 'ping',
344
+ };
345
+ this.sendMessage(pingMessage);
346
+ }
347
+ }, this.pingInterval);
348
+ }
349
+ /**
350
+ * Stop ping interval
351
+ */
352
+ stopPing() {
353
+ if (this.pingTimer) {
354
+ clearInterval(this.pingTimer);
355
+ this.pingTimer = undefined;
356
+ }
357
+ }
358
+ /**
359
+ * Disconnect from user data stream
360
+ */
361
+ async disconnectUserDataStream() {
362
+ this.autoReconnect = false;
363
+ if (this.reconnectTimer) {
364
+ clearTimeout(this.reconnectTimer);
365
+ this.reconnectTimer = undefined;
366
+ }
367
+ this.stopPing();
368
+ if (this.ws) {
369
+ this.ws.close();
370
+ this.ws = undefined;
371
+ }
372
+ this.subscriptions.clear();
373
+ this.status = 'disconnected';
374
+ this.isAuthenticated = false;
375
+ }
376
+ /**
377
+ * Check if user data stream is connected
378
+ */
379
+ isUserDataStreamConnected() {
380
+ return this.status === 'connected' && this.isAuthenticated;
381
+ }
382
+ }
383
+ exports.GateioUserDataStream = GateioUserDataStream;
384
+ //# sourceMappingURL=gateio-user-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateio-user-stream.js","sourceRoot":"","sources":["../../../src/exchanges/gateio/gateio-user-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Gate.io Utility Functions
3
+ * Symbol conversion and error mapping
4
+ */
5
+ export declare class GateioUtils {
6
+ /**
7
+ * Convert symbol from standard format to Gate.io format
8
+ * Standard: SNEK/USDT → Gate.io: SNEK_USDT
9
+ */
10
+ static toGateioSymbol(symbol: string): string;
11
+ /**
12
+ * Convert symbol from Gate.io format to standard format
13
+ * Gate.io: SNEK_USDT → Standard: SNEK/USDT
14
+ */
15
+ static fromGateioSymbol(gateioSymbol: string): string;
16
+ /**
17
+ * Map Gate.io error responses to standardized error messages
18
+ *
19
+ * Gate.io error format: { label: "ERROR_LABEL", message: "description" }
20
+ */
21
+ static mapErrorMessage(gateioError: unknown): string;
22
+ /**
23
+ * Validate if symbol is in supported format for Gate.io
24
+ */
25
+ static isValidSymbol(symbol: string): boolean;
26
+ /**
27
+ * Parse timestamp from Gate.io response
28
+ * Gate.io can use seconds (as string) or milliseconds
29
+ */
30
+ static parseTimestamp(timestamp: string | number): number;
31
+ /**
32
+ * Validate Gate.io order response
33
+ */
34
+ static isValidOrderResponse(response: unknown): boolean;
35
+ /**
36
+ * Extract currency pair list from open orders response
37
+ * Gate.io returns: [{ currency_pair, total, orders: [...] }]
38
+ */
39
+ static extractOrdersFromOpenOrdersResponse(response: unknown[]): unknown[];
40
+ /**
41
+ * Normalize symbol format (uppercase)
42
+ */
43
+ static normalizeSymbol(symbol: string): string;
44
+ }
45
+ //# sourceMappingURL=gateio-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateio-utils.d.ts","sourceRoot":"","sources":["../../../src/exchanges/gateio/gateio-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,WAAW;IACtB;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIrD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM;IA+DpD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAU7C;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAUzD;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO;IAUvD;;;OAGG;IACH,MAAM,CAAC,mCAAmC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAiB1E;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAG/C"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GateioUtils = void 0;
4
+ /**
5
+ * Gate.io Utility Functions
6
+ * Symbol conversion and error mapping
7
+ */
8
+ class GateioUtils {
9
+ /**
10
+ * Convert symbol from standard format to Gate.io format
11
+ * Standard: SNEK/USDT → Gate.io: SNEK_USDT
12
+ */
13
+ static toGateioSymbol(symbol) {
14
+ return symbol.replace('/', '_').toUpperCase();
15
+ }
16
+ /**
17
+ * Convert symbol from Gate.io format to standard format
18
+ * Gate.io: SNEK_USDT → Standard: SNEK/USDT
19
+ */
20
+ static fromGateioSymbol(gateioSymbol) {
21
+ return gateioSymbol.replace('_', '/').toUpperCase();
22
+ }
23
+ /**
24
+ * Map Gate.io error responses to standardized error messages
25
+ *
26
+ * Gate.io error format: { label: "ERROR_LABEL", message: "description" }
27
+ */
28
+ static mapErrorMessage(gateioError) {
29
+ if (!gateioError)
30
+ return 'Unknown error';
31
+ const error = gateioError;
32
+ const errorLabel = error.label || '';
33
+ const errorMsg = error.message || 'Unknown error';
34
+ const errorMap = {
35
+ INVALID_PARAM_VALUE: 'Invalid parameter value',
36
+ INVALID_PROTOCOL: 'Invalid protocol',
37
+ INVALID_ARGUMENT: 'Invalid argument',
38
+ INVALID_REQUEST_BODY: 'Invalid request body',
39
+ INVALID_CURRENCY: 'Invalid currency',
40
+ INVALID_CURRENCY_PAIR: 'Invalid trading pair',
41
+ INVALID_PRECISION: 'Invalid precision',
42
+ // Order errors
43
+ INVALID_ORDER_ID: 'Invalid order ID',
44
+ ORDER_NOT_FOUND: 'Order not found',
45
+ ORDER_CLOSED: 'Order already closed',
46
+ ORDER_CANCELLED: 'Order already cancelled',
47
+ // Balance errors
48
+ INSUFFICIENT_BALANCE: 'Insufficient balance',
49
+ BALANCE_NOT_ENOUGH: 'Balance not enough',
50
+ // Trading errors
51
+ AMOUNT_TOO_SMALL: 'Order amount too small',
52
+ AMOUNT_TOO_LARGE: 'Order amount too large',
53
+ PRICE_TOO_HIGH: 'Price too high',
54
+ PRICE_TOO_LOW: 'Price too low',
55
+ INVALID_PRICE: 'Invalid price',
56
+ // Authentication errors
57
+ INVALID_KEY: 'Invalid API key',
58
+ INVALID_SIGNATURE: 'Invalid signature',
59
+ SIGNATURE_NOT_MATCH: 'Signature does not match',
60
+ IP_FORBIDDEN: 'IP not whitelisted',
61
+ PERMISSION_DENIED: 'Permission denied',
62
+ KEY_EXPIRED: 'API key expired',
63
+ // Rate limiting
64
+ TOO_MANY_REQUESTS: 'Rate limit exceeded',
65
+ REQUEST_TOO_FAST: 'Requests too frequent',
66
+ // Market errors
67
+ MARKET_CLOSED: 'Market is closed',
68
+ MARKET_NOT_FOUND: 'Market not found',
69
+ PAIR_NOT_FOUND: 'Trading pair not found',
70
+ // System errors
71
+ SYSTEM_ERROR: 'System error',
72
+ SERVICE_UNAVAILABLE: 'Service temporarily unavailable',
73
+ };
74
+ const mappedMessage = errorMap[errorLabel];
75
+ if (mappedMessage) {
76
+ return `${mappedMessage} (${errorLabel})`;
77
+ }
78
+ return `Gate.io Error: ${errorMsg} (${errorLabel || 'Unknown'})`;
79
+ }
80
+ /**
81
+ * Validate if symbol is in supported format for Gate.io
82
+ */
83
+ static isValidSymbol(symbol) {
84
+ try {
85
+ const gateioFormat = this.toGateioSymbol(symbol);
86
+ return /^[A-Z0-9]+_[A-Z0-9]+$/.test(gateioFormat);
87
+ }
88
+ catch {
89
+ return false;
90
+ }
91
+ }
92
+ /**
93
+ * Parse timestamp from Gate.io response
94
+ * Gate.io can use seconds (as string) or milliseconds
95
+ */
96
+ static parseTimestamp(timestamp) {
97
+ const ts = typeof timestamp === 'string' ? parseFloat(timestamp) : timestamp;
98
+ if (ts < 10000000000) {
99
+ return ts * 1000;
100
+ }
101
+ return ts;
102
+ }
103
+ /**
104
+ * Validate Gate.io order response
105
+ */
106
+ static isValidOrderResponse(response) {
107
+ const order = response;
108
+ return (order &&
109
+ typeof order.id === 'string' &&
110
+ typeof order.currency_pair === 'string' &&
111
+ typeof order.status === 'string');
112
+ }
113
+ /**
114
+ * Extract currency pair list from open orders response
115
+ * Gate.io returns: [{ currency_pair, total, orders: [...] }]
116
+ */
117
+ static extractOrdersFromOpenOrdersResponse(response) {
118
+ const allOrders = [];
119
+ if (!Array.isArray(response)) {
120
+ return allOrders;
121
+ }
122
+ response.forEach(group => {
123
+ const groupData = group;
124
+ if (groupData.orders && Array.isArray(groupData.orders)) {
125
+ allOrders.push(...groupData.orders);
126
+ }
127
+ });
128
+ return allOrders;
129
+ }
130
+ /**
131
+ * Normalize symbol format (uppercase)
132
+ */
133
+ static normalizeSymbol(symbol) {
134
+ return symbol.toUpperCase();
135
+ }
136
+ }
137
+ exports.GateioUtils = GateioUtils;
138
+ //# sourceMappingURL=gateio-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateio-utils.js","sourceRoot":"","sources":["../../../src/exchanges/gateio/gateio-utils.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,WAAW;IACtB;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,MAAc;QAClC,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAoB;QAC1C,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,WAAoB;QACzC,IAAI,CAAC,WAAW;YAAE,OAAO,eAAe,CAAC;QAEzC,MAAM,KAAK,GAAG,WAAsC,CAAC;QACrD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC;QAElD,MAAM,QAAQ,GAA2B;YACvC,mBAAmB,EAAE,yBAAyB;YAC9C,gBAAgB,EAAE,kBAAkB;YACpC,gBAAgB,EAAE,kBAAkB;YACpC,oBAAoB,EAAE,sBAAsB;YAC5C,gBAAgB,EAAE,kBAAkB;YACpC,qBAAqB,EAAE,sBAAsB;YAC7C,iBAAiB,EAAE,mBAAmB;YAEtC,eAAe;YACf,gBAAgB,EAAE,kBAAkB;YACpC,eAAe,EAAE,iBAAiB;YAClC,YAAY,EAAE,sBAAsB;YACpC,eAAe,EAAE,yBAAyB;YAE1C,iBAAiB;YACjB,oBAAoB,EAAE,sBAAsB;YAC5C,kBAAkB,EAAE,oBAAoB;YAExC,iBAAiB;YACjB,gBAAgB,EAAE,wBAAwB;YAC1C,gBAAgB,EAAE,wBAAwB;YAC1C,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,eAAe;YAC9B,aAAa,EAAE,eAAe;YAE9B,wBAAwB;YACxB,WAAW,EAAE,iBAAiB;YAC9B,iBAAiB,EAAE,mBAAmB;YACtC,mBAAmB,EAAE,0BAA0B;YAC/C,YAAY,EAAE,oBAAoB;YAClC,iBAAiB,EAAE,mBAAmB;YACtC,WAAW,EAAE,iBAAiB;YAE9B,gBAAgB;YAChB,iBAAiB,EAAE,qBAAqB;YACxC,gBAAgB,EAAE,uBAAuB;YAEzC,gBAAgB;YAChB,aAAa,EAAE,kBAAkB;YACjC,gBAAgB,EAAE,kBAAkB;YACpC,cAAc,EAAE,wBAAwB;YAExC,gBAAgB;YAChB,YAAY,EAAE,cAAc;YAC5B,mBAAmB,EAAE,iCAAiC;SACvD,CAAC;QAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAoB,CAAC,CAAC;QACrD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,GAAG,aAAa,KAAK,UAAU,GAAG,CAAC;QAC5C,CAAC;QAED,OAAO,kBAAkB,QAAQ,KAAK,UAAU,IAAI,SAAS,GAAG,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAc;QACjC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAEjD,OAAO,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,SAA0B;QAC9C,MAAM,EAAE,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7E,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;YACrB,OAAO,EAAE,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,QAAiB;QAC3C,MAAM,KAAK,GAAG,QAAmC,CAAC;QAClD,OAAO,CACL,KAAK;YACL,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;YAC5B,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;YACvC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CACjC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,mCAAmC,CAAC,QAAmB;QAC5D,MAAM,SAAS,GAAc,EAAE,CAAC;QAEhC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,MAAM,SAAS,GAAG,KAAgC,CAAC;YACnD,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAc;QACnC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;CACF;AAxJD,kCAwJC"}