@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,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KrakenDataMapper = void 0;
4
+ const kraken_utils_1 = require("./kraken-utils");
5
+ class KrakenDataMapper {
6
+ mapBalance(balances) {
7
+ const result = {};
8
+ for (const [krakenAsset, amount] of Object.entries(balances)) {
9
+ const total = parseFloat(amount);
10
+ const standardAsset = kraken_utils_1.KrakenUtils.fromKrakenAsset(krakenAsset);
11
+ result[standardAsset] = {
12
+ asset: standardAsset,
13
+ free: total,
14
+ used: 0,
15
+ total,
16
+ available: total,
17
+ };
18
+ }
19
+ return result;
20
+ }
21
+ mapTicker(data) {
22
+ const ask = data.a;
23
+ const bid = data.b;
24
+ const last = data.c;
25
+ const volume = data.v;
26
+ return {
27
+ symbol: '',
28
+ bid: parseFloat(bid[0]),
29
+ ask: parseFloat(ask[0]),
30
+ last: parseFloat(last[0]),
31
+ baseVolume: parseFloat(volume[1]),
32
+ quoteVolume: parseFloat(volume[0]),
33
+ timestamp: Date.now(),
34
+ };
35
+ }
36
+ mapOrderBook(data) {
37
+ const asks = data.asks.map(([price, volume]) => ({
38
+ price: parseFloat(price),
39
+ amount: parseFloat(volume),
40
+ }));
41
+ const bids = data.bids.map(([price, volume]) => ({
42
+ price: parseFloat(price),
43
+ amount: parseFloat(volume),
44
+ }));
45
+ return {
46
+ symbol: '',
47
+ bids,
48
+ asks,
49
+ timestamp: Date.now(),
50
+ };
51
+ }
52
+ mapTrade(trade) {
53
+ const tradeArray = trade;
54
+ const [price, volume, time, side] = tradeArray;
55
+ return {
56
+ id: time.toString(),
57
+ symbol: '',
58
+ price: parseFloat(price),
59
+ amount: parseFloat(volume),
60
+ side: side === 'b' ? 'buy' : 'sell',
61
+ timestamp: kraken_utils_1.KrakenUtils.parseTimestamp(time),
62
+ };
63
+ }
64
+ mapTrades(trades) {
65
+ return trades.map(([price, volume, time, side]) => ({
66
+ id: time.toString(),
67
+ symbol: '',
68
+ price: parseFloat(price),
69
+ amount: parseFloat(volume),
70
+ side: side === 'b' ? 'buy' : 'sell',
71
+ timestamp: kraken_utils_1.KrakenUtils.parseTimestamp(time),
72
+ }));
73
+ }
74
+ mapOrder(order) {
75
+ const descr = order.descr;
76
+ const status = kraken_utils_1.KrakenUtils.mapOrderStatus(order.status);
77
+ const side = kraken_utils_1.KrakenUtils.fromKrakenOrderSide(descr.type.startsWith('buy') ? 'buy' : 'sell');
78
+ const type = kraken_utils_1.KrakenUtils.fromKrakenOrderType(descr.ordertype);
79
+ return {
80
+ id: order.txid,
81
+ symbol: descr.pair,
82
+ type,
83
+ side,
84
+ price: parseFloat(descr.price || '0'),
85
+ amount: parseFloat(order.vol),
86
+ filled: parseFloat(order.vol_exec),
87
+ remaining: parseFloat(order.vol) - parseFloat(order.vol_exec),
88
+ status,
89
+ timestamp: kraken_utils_1.KrakenUtils.parseTimestamp(order.opentm),
90
+ };
91
+ }
92
+ mapWebSocketTicker(data) {
93
+ return {
94
+ symbol: '',
95
+ bid: parseFloat(data.bid || '0'),
96
+ ask: parseFloat(data.ask || '0'),
97
+ last: parseFloat(data.last || '0'),
98
+ baseVolume: parseFloat(data.volume || '0'),
99
+ quoteVolume: parseFloat(data.volume_quote || '0'),
100
+ timestamp: typeof data.timestamp === 'number' ? data.timestamp : Date.now(),
101
+ };
102
+ }
103
+ mapWebSocketOrderBook(data) {
104
+ const asks = (data.asks || []).map((ask) => ({
105
+ price: parseFloat(ask.price || ask[0]),
106
+ amount: parseFloat(ask.qty || ask[1]),
107
+ }));
108
+ const bids = (data.bids || []).map((bid) => ({
109
+ price: parseFloat(bid.price || bid[0]),
110
+ amount: parseFloat(bid.qty || bid[1]),
111
+ }));
112
+ return {
113
+ symbol: '',
114
+ bids,
115
+ asks,
116
+ timestamp: typeof data.timestamp === 'number' ? data.timestamp : Date.now(),
117
+ };
118
+ }
119
+ mapWebSocketTrade(data) {
120
+ return {
121
+ id: data.trade_id || data.ord_id || Date.now().toString(),
122
+ symbol: '',
123
+ price: parseFloat(data.price),
124
+ amount: parseFloat(data.qty || data.volume || '0'),
125
+ side: data.side === 'buy' ? 'buy' : 'sell',
126
+ timestamp: typeof data.timestamp === 'number' ? data.timestamp : Date.now(),
127
+ };
128
+ }
129
+ mapWebSocketOrder(data) {
130
+ const rawStatus = data.order_status || data.ord_status || data.status || 'open';
131
+ const status = kraken_utils_1.KrakenUtils.mapOrderStatus(rawStatus);
132
+ const symbol = data.symbol ? kraken_utils_1.KrakenUtils.fromKrakenSymbol(data.symbol) : '';
133
+ const cumQty = typeof data.cum_qty === 'number' ? data.cum_qty : parseFloat(data.cum_qty || '0');
134
+ const filled = cumQty || parseFloat(data.cum_exec_qty || data.exec_qty || data.filled_qty || '0');
135
+ let amount = parseFloat(data.order_qty || data.qty || '0');
136
+ if (amount === 0 && filled > 0) {
137
+ amount = filled;
138
+ }
139
+ const remaining = amount > 0 ? Math.max(0, amount - filled) : 0;
140
+ let finalStatus = status;
141
+ if (data.order_status === 'filled' || data.exec_type === 'filled') {
142
+ finalStatus = 'filled';
143
+ }
144
+ else if (data.order_status === 'partially_filled' ||
145
+ (data.exec_type === 'trade' && filled > 0 && filled < amount)) {
146
+ finalStatus = 'partially_filled';
147
+ }
148
+ else if (data.order_status === 'new' || data.exec_type === 'new') {
149
+ finalStatus = 'open';
150
+ }
151
+ else if (data.order_status === 'canceled' || data.exec_type === 'canceled') {
152
+ finalStatus = 'cancelled';
153
+ }
154
+ return {
155
+ id: data.order_id || data.ord_id || data.orderId || Date.now().toString(),
156
+ symbol,
157
+ type: data.order_type === 'market' ? 'market' : 'limit',
158
+ side: data.side === 'buy' ? 'buy' : 'sell',
159
+ price: parseFloat(data.avg_price ? String(data.avg_price) : data.limit_price || data.price || '0'),
160
+ amount,
161
+ filled,
162
+ remaining,
163
+ status: finalStatus,
164
+ timestamp: typeof data.timestamp === 'number' ? data.timestamp : Date.now(),
165
+ };
166
+ }
167
+ }
168
+ exports.KrakenDataMapper = KrakenDataMapper;
169
+ //# sourceMappingURL=kraken-data-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kraken-data-mapper.js","sourceRoot":"","sources":["../../../src/exchanges/kraken/kraken-data-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Kraken Utility Functions
3
+ * Symbol conversion, error mapping, and validation utilities
4
+ */
5
+ export declare class KrakenUtils {
6
+ /**
7
+ * Convert symbol from standard format to Kraken format
8
+ * Standard: BTC/USD → Kraken: XXBTZUSD or XBTUSD
9
+ * Standard: ETH/USD → Kraken: XETHZUSD
10
+ */
11
+ static toKrakenSymbol(symbol: string): string;
12
+ /**
13
+ * Convert symbol from Kraken format to standard format
14
+ * Kraken: XXBTZUSD → Standard: BTC/USD
15
+ * Kraken: XETHZEUR → Standard: ETH/EUR
16
+ */
17
+ static fromKrakenSymbol(krakenSymbol: string): string;
18
+ /**
19
+ * Map Kraken error codes to standardized error messages
20
+ *
21
+ * Kraken error format: { error: ["EAPI:Invalid key", "EGeneral:Invalid arguments"] }
22
+ */
23
+ static mapErrorMessage(krakenError: unknown): string;
24
+ /**
25
+ * Parse timestamp from Kraken response
26
+ * Kraken uses seconds (as number) for timestamps
27
+ */
28
+ static parseTimestamp(timestamp: string | number): number;
29
+ /**
30
+ * Convert order side from Kraken format
31
+ * Kraken: buy/sell → Standard: buy/sell
32
+ */
33
+ static fromKrakenOrderSide(side: string): 'buy' | 'sell';
34
+ /**
35
+ * Convert order type from Kraken format
36
+ * Kraken: limit/market → Standard: limit/market
37
+ */
38
+ static fromKrakenOrderType(type: string): 'limit' | 'market';
39
+ /**
40
+ * Map Kraken order status to standard format
41
+ */
42
+ static mapOrderStatus(status: string): 'open' | 'filled' | 'cancelled' | 'rejected' | 'partially_filled';
43
+ /**
44
+ * Convert Kraken asset name to standard asset name
45
+ * Kraken: ZEUR → Standard: EUR
46
+ * Kraken: ZUSD → Standard: USD
47
+ * Kraken: XXBT → Standard: BTC
48
+ * Kraken: ADA → Standard: ADA (Cardano native token)
49
+ */
50
+ static fromKrakenAsset(krakenAsset: string): string;
51
+ }
52
+ //# sourceMappingURL=kraken-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kraken-utils.d.ts","sourceRoot":"","sources":["../../../src/exchanges/kraken/kraken-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAqB7C;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiCrD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM;IAgFpD;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAUzD;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM;IAIxD;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ;IAI5D;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,kBAAkB;IAiBpE;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CA8BpD"}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KrakenUtils = void 0;
4
+ /**
5
+ * Kraken Utility Functions
6
+ * Symbol conversion, error mapping, and validation utilities
7
+ */
8
+ class KrakenUtils {
9
+ /**
10
+ * Convert symbol from standard format to Kraken format
11
+ * Standard: BTC/USD → Kraken: XXBTZUSD or XBTUSD
12
+ * Standard: ETH/USD → Kraken: XETHZUSD
13
+ */
14
+ static toKrakenSymbol(symbol) {
15
+ const [base, quote] = symbol.split('/');
16
+ const baseMap = {
17
+ BTC: 'XBT',
18
+ DOGE: 'XDG',
19
+ };
20
+ const mappedBase = baseMap[base] || base;
21
+ if ((mappedBase === 'XBT' || base === 'ETH') && (quote === 'USD' || quote === 'EUR')) {
22
+ return `X${mappedBase}Z${quote}`;
23
+ }
24
+ if (quote === 'USDC' || quote === 'USDT' || quote === 'DAI') {
25
+ return `${mappedBase}${quote}`;
26
+ }
27
+ return `${mappedBase}${quote}`;
28
+ }
29
+ /**
30
+ * Convert symbol from Kraken format to standard format
31
+ * Kraken: XXBTZUSD → Standard: BTC/USD
32
+ * Kraken: XETHZEUR → Standard: ETH/EUR
33
+ */
34
+ static fromKrakenSymbol(krakenSymbol) {
35
+ const symbolMap = {
36
+ XXBTZUSD: 'BTC/USD',
37
+ XETHZUSD: 'ETH/USD',
38
+ XXBTZEUR: 'BTC/EUR',
39
+ XETHZEUR: 'ETH/EUR',
40
+ XBTUSD: 'BTC/USD',
41
+ ETHUSD: 'ETH/USD',
42
+ XBTEUR: 'BTC/EUR',
43
+ ETHEUR: 'ETH/EUR',
44
+ };
45
+ if (symbolMap[krakenSymbol]) {
46
+ return symbolMap[krakenSymbol];
47
+ }
48
+ const xzMatch = krakenSymbol.match(/^X([A-Z]{3})Z([A-Z]{3})$/);
49
+ if (xzMatch) {
50
+ const base = xzMatch[1] === 'XBT' ? 'BTC' : xzMatch[1];
51
+ const quote = xzMatch[2];
52
+ return `${base}/${quote}`;
53
+ }
54
+ const simpleMatch = krakenSymbol.match(/^([A-Z]{3,4})([A-Z]{3,4})$/);
55
+ if (simpleMatch) {
56
+ const base = simpleMatch[1] === 'XBT' ? 'BTC' : simpleMatch[1];
57
+ const quote = simpleMatch[2];
58
+ return `${base}/${quote}`;
59
+ }
60
+ return krakenSymbol;
61
+ }
62
+ /**
63
+ * Map Kraken error codes to standardized error messages
64
+ *
65
+ * Kraken error format: { error: ["EAPI:Invalid key", "EGeneral:Invalid arguments"] }
66
+ */
67
+ static mapErrorMessage(krakenError) {
68
+ if (!krakenError)
69
+ return 'Unknown error';
70
+ if (Array.isArray(krakenError)) {
71
+ return krakenError.join(', ');
72
+ }
73
+ const error = krakenError;
74
+ const errorMessages = error.error || [];
75
+ if (errorMessages.length === 0) {
76
+ return typeof krakenError === 'string' ? krakenError : 'Unknown error';
77
+ }
78
+ const errorMap = {
79
+ // API errors
80
+ 'EAPI:Invalid key': 'Invalid API key',
81
+ 'EAPI:Invalid signature': 'Invalid signature',
82
+ 'EAPI:Invalid nonce': 'Invalid or duplicate nonce',
83
+ 'EAPI:Invalid arguments': 'Invalid arguments provided',
84
+ 'EAPI:Feature disabled': 'Feature is disabled',
85
+ // Permission errors
86
+ 'EGeneral:Permission denied': 'Permission denied for this operation',
87
+ 'EGeneral:Invalid arguments': 'Invalid arguments',
88
+ // Order errors
89
+ 'EOrder:Invalid order': 'Invalid order',
90
+ 'EOrder:Unknown order': 'Order not found',
91
+ 'EOrder:Invalid price': 'Invalid price',
92
+ 'EOrder:Invalid volume': 'Invalid volume',
93
+ 'EOrder:Order minimum not met': 'Order minimum not met',
94
+ 'EOrder:Order limits exceeded': 'Order limits exceeded',
95
+ 'EOrder:Insufficient funds': 'Insufficient funds',
96
+ 'EOrder:Insufficient margin': 'Insufficient margin',
97
+ 'EOrder:Position limit exceeded': 'Position limit exceeded',
98
+ 'EOrder:Margin allowance exceeded': 'Margin allowance exceeded',
99
+ // Trading errors
100
+ 'ETrade:Invalid pair': 'Invalid trading pair',
101
+ 'ETrade:Market closed': 'Market is closed',
102
+ // Service errors
103
+ 'EService:Unavailable': 'Service temporarily unavailable',
104
+ 'EService:Busy': 'Service is busy, try again later',
105
+ 'EService:Market in cancel only mode': 'Market in cancel-only mode',
106
+ 'EService:Market in post only mode': 'Market in post-only mode',
107
+ // Database errors
108
+ 'EDatabase:Internal error': 'Internal database error',
109
+ 'EDatabase:Unavailable': 'Database unavailable',
110
+ // Network errors
111
+ 'ENetwork:Timeout': 'Network timeout',
112
+ 'ENetwork:Unavailable': 'Network unavailable',
113
+ // General errors
114
+ 'EGeneral:Unknown method': 'Unknown method',
115
+ 'EGeneral:Invalid method': 'Invalid method',
116
+ 'EGeneral:Internal error': 'Internal error',
117
+ 'EGeneral:Rate limit': 'Rate limit exceeded',
118
+ };
119
+ const mappedErrors = errorMessages.map(errorMsg => {
120
+ if (errorMap[errorMsg]) {
121
+ return errorMap[errorMsg];
122
+ }
123
+ for (const [key, value] of Object.entries(errorMap)) {
124
+ if (errorMsg.includes(key.split(':')[0])) {
125
+ return value;
126
+ }
127
+ }
128
+ return errorMsg;
129
+ });
130
+ return `Kraken Error: ${mappedErrors.join(', ')}`;
131
+ }
132
+ /**
133
+ * Parse timestamp from Kraken response
134
+ * Kraken uses seconds (as number) for timestamps
135
+ */
136
+ static parseTimestamp(timestamp) {
137
+ const ts = typeof timestamp === 'string' ? parseFloat(timestamp) : timestamp;
138
+ if (ts < 10000000000) {
139
+ return Math.floor(ts * 1000);
140
+ }
141
+ return Math.floor(ts);
142
+ }
143
+ /**
144
+ * Convert order side from Kraken format
145
+ * Kraken: buy/sell → Standard: buy/sell
146
+ */
147
+ static fromKrakenOrderSide(side) {
148
+ return side.toLowerCase();
149
+ }
150
+ /**
151
+ * Convert order type from Kraken format
152
+ * Kraken: limit/market → Standard: limit/market
153
+ */
154
+ static fromKrakenOrderType(type) {
155
+ return type.toLowerCase();
156
+ }
157
+ /**
158
+ * Map Kraken order status to standard format
159
+ */
160
+ static mapOrderStatus(status) {
161
+ const statusMap = {
162
+ pending: 'open',
163
+ new: 'open',
164
+ open: 'open',
165
+ closed: 'filled',
166
+ canceled: 'cancelled',
167
+ expired: 'cancelled',
168
+ 'partially-filled': 'partially_filled',
169
+ };
170
+ return statusMap[status.toLowerCase()] || 'rejected';
171
+ }
172
+ /**
173
+ * Convert Kraken asset name to standard asset name
174
+ * Kraken: ZEUR → Standard: EUR
175
+ * Kraken: ZUSD → Standard: USD
176
+ * Kraken: XXBT → Standard: BTC
177
+ * Kraken: ADA → Standard: ADA (Cardano native token)
178
+ */
179
+ static fromKrakenAsset(krakenAsset) {
180
+ const assetMap = {
181
+ ZEUR: 'EUR',
182
+ ZUSD: 'USD',
183
+ ZGBP: 'GBP',
184
+ XXBT: 'BTC',
185
+ XETH: 'ETH',
186
+ ADA: 'ADA',
187
+ USDT: 'USDT',
188
+ USDC: 'USDC',
189
+ };
190
+ if (assetMap[krakenAsset]) {
191
+ return assetMap[krakenAsset];
192
+ }
193
+ if (krakenAsset.startsWith('Z') && krakenAsset.length === 4) {
194
+ return krakenAsset.substring(1); // ZSNEK → SNEK, ZNIGHT → NIGHT
195
+ }
196
+ if (krakenAsset.startsWith('X') && krakenAsset.length === 4) {
197
+ return krakenAsset.substring(1); // XSNEK → SNEK
198
+ }
199
+ if (krakenAsset.startsWith('XX') && krakenAsset.length === 5) {
200
+ return krakenAsset.substring(2); // XXSNEK → SNEK
201
+ }
202
+ return krakenAsset;
203
+ }
204
+ }
205
+ exports.KrakenUtils = KrakenUtils;
206
+ //# sourceMappingURL=kraken-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kraken-utils.js","sourceRoot":"","sources":["../../../src/exchanges/kraken/kraken-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { OrderBook, Ticker, Trade, WebSocketStatus, Order } from '../../types';
2
+ export declare class KrakenWebSocket {
3
+ private ws?;
4
+ private privateWs?;
5
+ private subscriptions;
6
+ private status;
7
+ private privateStatus;
8
+ private readonly publicWsUrl;
9
+ private readonly privateWsUrl;
10
+ private logger;
11
+ private reconnectTimer?;
12
+ private pingTimer?;
13
+ private privatePingTimer?;
14
+ private reconnectAttempts;
15
+ private maxReconnectAttempts;
16
+ private reconnectDelay;
17
+ private autoReconnect;
18
+ private pingInterval;
19
+ private readonly dataMapper;
20
+ private nextReqId;
21
+ private authToken?;
22
+ private auth?;
23
+ private pendingCancelRequests;
24
+ constructor(publicWsUrl?: string, privateWsUrl?: string);
25
+ setCredentials(apiKey: string, apiSecret: string): void;
26
+ connectWebSocket(): Promise<void>;
27
+ private onOpen;
28
+ private onClose;
29
+ private onError;
30
+ private onMessage;
31
+ private handleSubscriptionResponse;
32
+ private processMarketData;
33
+ private handleTickerData;
34
+ private handleOrderBookData;
35
+ private handleTradeData;
36
+ subscribeTicker(symbol: string, callback: (ticker: Ticker) => void): Promise<string>;
37
+ subscribeOrderBook(symbol: string, callback: (orderbook: OrderBook) => void): Promise<string>;
38
+ subscribeTrades(symbol: string, callback: (trade: Trade) => void): Promise<string>;
39
+ unsubscribe(subscriptionId: string): Promise<void>;
40
+ connectPrivateWebSocket(): Promise<void>;
41
+ private onPrivateOpen;
42
+ private authenticatePrivateWebSocket;
43
+ private onPrivateClose;
44
+ private onPrivateError;
45
+ private onPrivateMessage;
46
+ private handleUserOrderUpdate;
47
+ private handleCancelAllResponse;
48
+ subscribeUserOrders(callback: (order: Order) => void): Promise<string>;
49
+ subscribeUserTrades(callback: (trade: Trade) => void): Promise<string>;
50
+ cancelAllOrders(symbol?: string): Promise<void>;
51
+ private startPing;
52
+ private stopPing;
53
+ private startPrivatePing;
54
+ private stopPrivatePing;
55
+ private scheduleReconnect;
56
+ private resubscribeAll;
57
+ private getNextReqId;
58
+ disconnectWebSocket(): Promise<void>;
59
+ disconnectPrivateWebSocket(): Promise<void>;
60
+ isConnected(): boolean;
61
+ isPrivateConnected(): boolean;
62
+ getStatus(): WebSocketStatus;
63
+ }
64
+ //# sourceMappingURL=kraken-websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kraken-websocket.d.ts","sourceRoot":"","sources":["../../../src/exchanges/kraken/kraken-websocket.ts"],"names":[],"mappings":"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"}