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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +34 -1
  2. package/dist/cli/cli.js +55 -36
  3. package/dist/cli/cli.js.map +1 -1
  4. package/dist/cli/commands/ohlcv.d.ts +3 -0
  5. package/dist/cli/commands/ohlcv.d.ts.map +1 -0
  6. package/dist/cli/commands/ohlcv.js +115 -0
  7. package/dist/cli/commands/ohlcv.js.map +1 -0
  8. package/dist/cli/commands/setup.d.ts +3 -0
  9. package/dist/cli/commands/setup.d.ts.map +1 -0
  10. package/dist/cli/commands/setup.js +253 -0
  11. package/dist/cli/commands/setup.js.map +1 -0
  12. package/dist/cli/commands/wallet.d.ts +7 -0
  13. package/dist/cli/commands/wallet.d.ts.map +1 -0
  14. package/dist/cli/commands/wallet.js +271 -0
  15. package/dist/cli/commands/wallet.js.map +1 -0
  16. package/dist/core/exchange/base-exchange-connector.d.ts +2 -1
  17. package/dist/core/exchange/base-exchange-connector.d.ts.map +1 -1
  18. package/dist/core/exchange/base-exchange-connector.js.map +1 -1
  19. package/dist/exchanges/bitget/bitget-connector.d.ts +11 -1
  20. package/dist/exchanges/bitget/bitget-connector.d.ts.map +1 -1
  21. package/dist/exchanges/bitget/bitget-connector.js +52 -0
  22. package/dist/exchanges/bitget/bitget-connector.js.map +1 -1
  23. package/dist/exchanges/gateio/gateio-connector.d.ts +11 -1
  24. package/dist/exchanges/gateio/gateio-connector.d.ts.map +1 -1
  25. package/dist/exchanges/gateio/gateio-connector.js +54 -0
  26. package/dist/exchanges/gateio/gateio-connector.js.map +1 -1
  27. package/dist/exchanges/kraken/kraken-connector.d.ts +6 -1
  28. package/dist/exchanges/kraken/kraken-connector.d.ts.map +1 -1
  29. package/dist/exchanges/kraken/kraken-connector.js +44 -0
  30. package/dist/exchanges/kraken/kraken-connector.js.map +1 -1
  31. package/dist/exchanges/mexc/mexc-auth.d.ts +1 -0
  32. package/dist/exchanges/mexc/mexc-auth.d.ts.map +1 -1
  33. package/dist/exchanges/mexc/mexc-auth.js +4 -1
  34. package/dist/exchanges/mexc/mexc-auth.js.map +1 -1
  35. package/dist/exchanges/mexc/mexc-connector.d.ts +6 -1
  36. package/dist/exchanges/mexc/mexc-connector.d.ts.map +1 -1
  37. package/dist/exchanges/mexc/mexc-connector.js +37 -0
  38. package/dist/exchanges/mexc/mexc-connector.js.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +25 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/types/market.d.ts +15 -0
  44. package/dist/types/market.d.ts.map +1 -1
  45. package/dist/x402/crypto.d.ts +79 -0
  46. package/dist/x402/crypto.d.ts.map +1 -0
  47. package/dist/x402/crypto.js +300 -0
  48. package/dist/x402/crypto.js.map +1 -0
  49. package/dist/x402/evm.d.ts +41 -0
  50. package/dist/x402/evm.d.ts.map +1 -0
  51. package/dist/x402/evm.js +229 -0
  52. package/dist/x402/evm.js.map +1 -0
  53. package/dist/x402/handler.d.ts +53 -0
  54. package/dist/x402/handler.d.ts.map +1 -0
  55. package/dist/x402/handler.js +233 -0
  56. package/dist/x402/handler.js.map +1 -0
  57. package/dist/x402/index.d.ts +29 -0
  58. package/dist/x402/index.d.ts.map +1 -0
  59. package/dist/x402/index.js +67 -0
  60. package/dist/x402/index.js.map +1 -0
  61. package/dist/x402/types.d.ts +185 -0
  62. package/dist/x402/types.d.ts.map +1 -0
  63. package/dist/x402/types.js +7 -0
  64. package/dist/x402/types.js.map +1 -0
  65. package/dist/x402/wallet.d.ts +65 -0
  66. package/dist/x402/wallet.d.ts.map +1 -0
  67. package/dist/x402/wallet.js +282 -0
  68. package/dist/x402/wallet.js.map +1 -0
  69. package/package.json +1 -1
  70. package/dist/cli/commands/grid.d.ts +0 -3
  71. package/dist/cli/commands/grid.d.ts.map +0 -1
  72. package/dist/cli/commands/grid.js +0 -103
  73. package/dist/cli/commands/grid.js.map +0 -1
  74. package/dist/cli/commands/multi-trade.d.ts +0 -3
  75. package/dist/cli/commands/multi-trade.d.ts.map +0 -1
  76. package/dist/cli/commands/multi-trade.js +0 -175
  77. package/dist/cli/commands/multi-trade.js.map +0 -1
  78. package/dist/cli/pool-discovery.d.ts +0 -56
  79. package/dist/cli/pool-discovery.d.ts.map +0 -1
  80. package/dist/cli/pool-discovery.js +0 -283
  81. package/dist/cli/pool-discovery.js.map +0 -1
  82. package/dist/core/price-aggregation/price-cache.d.ts +0 -55
  83. package/dist/core/price-aggregation/price-cache.d.ts.map +0 -1
  84. package/dist/core/price-aggregation/price-cache.js +0 -152
  85. package/dist/core/price-aggregation/price-cache.js.map +0 -1
  86. package/dist/examples/mexc-connector-comprehensive-test.d.ts +0 -15
  87. package/dist/examples/mexc-connector-comprehensive-test.d.ts.map +0 -1
  88. package/dist/examples/mexc-connector-comprehensive-test.js +0 -514
  89. package/dist/examples/mexc-connector-comprehensive-test.js.map +0 -1
  90. package/dist/examples/mexc-order-update-test.d.ts +0 -4
  91. package/dist/examples/mexc-order-update-test.d.ts.map +0 -1
  92. package/dist/examples/mexc-order-update-test.js +0 -186
  93. package/dist/examples/mexc-order-update-test.js.map +0 -1
  94. package/dist/examples/mexc-test.d.ts +0 -9
  95. package/dist/examples/mexc-test.d.ts.map +0 -1
  96. package/dist/examples/mexc-test.js +0 -218
  97. package/dist/examples/mexc-test.js.map +0 -1
  98. package/dist/examples/mexc-trades-debug.d.ts +0 -2
  99. package/dist/examples/mexc-trades-debug.d.ts.map +0 -1
  100. package/dist/examples/mexc-trades-debug.js +0 -101
  101. package/dist/examples/mexc-trades-debug.js.map +0 -1
  102. package/dist/examples/mexc-trades-subscription-debug.d.ts +0 -2
  103. package/dist/examples/mexc-trades-subscription-debug.d.ts.map +0 -1
  104. package/dist/examples/mexc-trades-subscription-debug.js +0 -150
  105. package/dist/examples/mexc-trades-subscription-debug.js.map +0 -1
  106. package/dist/examples/mexc-websocket-test.d.ts +0 -8
  107. package/dist/examples/mexc-websocket-test.d.ts.map +0 -1
  108. package/dist/examples/mexc-websocket-test.js +0 -115
  109. package/dist/examples/mexc-websocket-test.js.map +0 -1
  110. package/dist/examples/test-protobuf-status-detection.d.ts +0 -9
  111. package/dist/examples/test-protobuf-status-detection.d.ts.map +0 -1
  112. package/dist/examples/test-protobuf-status-detection.js +0 -83
  113. package/dist/examples/test-protobuf-status-detection.js.map +0 -1
  114. package/dist/exchanges/base-exchange-connector.d.ts +0 -33
  115. package/dist/exchanges/base-exchange-connector.d.ts.map +0 -1
  116. package/dist/exchanges/base-exchange-connector.js +0 -55
  117. package/dist/exchanges/base-exchange-connector.js.map +0 -1
  118. package/dist/exchanges/kraken/test-kraken-websocket.d.ts +0 -19
  119. package/dist/exchanges/kraken/test-kraken-websocket.d.ts.map +0 -1
  120. package/dist/exchanges/kraken/test-kraken-websocket.js +0 -413
  121. package/dist/exchanges/kraken/test-kraken-websocket.js.map +0 -1
  122. package/dist/mcp/resources/index.d.ts +0 -3
  123. package/dist/mcp/resources/index.d.ts.map +0 -1
  124. package/dist/mcp/resources/index.js +0 -11
  125. package/dist/mcp/resources/index.js.map +0 -1
  126. package/dist/mcp/server.d.ts +0 -4
  127. package/dist/mcp/server.d.ts.map +0 -1
  128. package/dist/mcp/server.js +0 -29
  129. package/dist/mcp/server.js.map +0 -1
  130. package/dist/mcp/tools/index.d.ts +0 -3
  131. package/dist/mcp/tools/index.d.ts.map +0 -1
  132. package/dist/mcp/tools/index.js +0 -12
  133. package/dist/mcp/tools/index.js.map +0 -1
  134. package/dist/tests/fixtures/test-helpers.d.ts +0 -5
  135. package/dist/tests/fixtures/test-helpers.d.ts.map +0 -1
  136. package/dist/tests/fixtures/test-helpers.js +0 -8
  137. package/dist/tests/fixtures/test-helpers.js.map +0 -1
  138. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts +0 -2
  139. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts.map +0 -1
  140. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js +0 -237
  141. package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js.map +0 -1
  142. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts +0 -2
  143. package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts.map +0 -1
  144. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js +0 -57
  145. package/dist/tests/integration/price-aggregation/cardano-price-service.test.js.map +0 -1
  146. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts +0 -2
  147. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts.map +0 -1
  148. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js +0 -141
  149. package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js.map +0 -1
  150. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts +0 -2
  151. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts.map +0 -1
  152. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js +0 -375
  153. package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js.map +0 -1
  154. package/dist/tests/unit/cli/exchange-factory.test.d.ts +0 -2
  155. package/dist/tests/unit/cli/exchange-factory.test.d.ts.map +0 -1
  156. package/dist/tests/unit/cli/exchange-factory.test.js +0 -148
  157. package/dist/tests/unit/cli/exchange-factory.test.js.map +0 -1
  158. package/dist/tests/unit/config/environment.test.d.ts +0 -2
  159. package/dist/tests/unit/config/environment.test.d.ts.map +0 -1
  160. package/dist/tests/unit/config/environment.test.js +0 -158
  161. package/dist/tests/unit/config/environment.test.js.map +0 -1
  162. package/dist/tests/unit/config/launcher-config.test.d.ts +0 -2
  163. package/dist/tests/unit/config/launcher-config.test.d.ts.map +0 -1
  164. package/dist/tests/unit/config/launcher-config.test.js +0 -117
  165. package/dist/tests/unit/config/launcher-config.test.js.map +0 -1
  166. package/dist/tests/unit/config/price-aggregation.test.d.ts +0 -2
  167. package/dist/tests/unit/config/price-aggregation.test.d.ts.map +0 -1
  168. package/dist/tests/unit/config/price-aggregation.test.js +0 -144
  169. package/dist/tests/unit/config/price-aggregation.test.js.map +0 -1
  170. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts +0 -2
  171. package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts.map +0 -1
  172. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js +0 -191
  173. package/dist/tests/unit/core/exchange/base-exchange-connector.test.js.map +0 -1
  174. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts +0 -2
  175. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts.map +0 -1
  176. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js +0 -324
  177. package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js.map +0 -1
  178. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts +0 -2
  179. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts.map +0 -1
  180. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js +0 -177
  181. package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js.map +0 -1
  182. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts +0 -2
  183. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts.map +0 -1
  184. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js +0 -168
  185. package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js.map +0 -1
  186. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts +0 -2
  187. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts.map +0 -1
  188. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js +0 -217
  189. package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js.map +0 -1
  190. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts +0 -2
  191. package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts.map +0 -1
  192. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js +0 -229
  193. package/dist/tests/unit/core/price-aggregation/price-calculator.test.js.map +0 -1
  194. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts +0 -2
  195. package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts.map +0 -1
  196. package/dist/tests/unit/core/risk-management/risk-manager.test.js +0 -194
  197. package/dist/tests/unit/core/risk-management/risk-manager.test.js.map +0 -1
  198. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts +0 -2
  199. package/dist/tests/unit/core/strategy/base-strategy.test.d.ts.map +0 -1
  200. package/dist/tests/unit/core/strategy/base-strategy.test.js +0 -254
  201. package/dist/tests/unit/core/strategy/base-strategy.test.js.map +0 -1
  202. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts +0 -2
  203. package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts.map +0 -1
  204. package/dist/tests/unit/core/strategy/strategy-factory.test.js +0 -213
  205. package/dist/tests/unit/core/strategy/strategy-factory.test.js.map +0 -1
  206. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts +0 -2
  207. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts.map +0 -1
  208. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js +0 -452
  209. package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js.map +0 -1
  210. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts +0 -2
  211. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts.map +0 -1
  212. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js +0 -1419
  213. package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js.map +0 -1
  214. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts +0 -2
  215. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts.map +0 -1
  216. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js +0 -435
  217. package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js.map +0 -1
  218. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts +0 -2
  219. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts.map +0 -1
  220. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js +0 -314
  221. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js.map +0 -1
  222. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts +0 -2
  223. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts.map +0 -1
  224. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js +0 -178
  225. package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js.map +0 -1
  226. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts +0 -2
  227. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts.map +0 -1
  228. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js +0 -502
  229. package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js.map +0 -1
  230. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts +0 -2
  231. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts.map +0 -1
  232. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js +0 -317
  233. package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js.map +0 -1
  234. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts +0 -2
  235. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts.map +0 -1
  236. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js +0 -843
  237. package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js.map +0 -1
  238. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts +0 -2
  239. package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts.map +0 -1
  240. package/dist/tests/unit/strategies/grid/grid-calculator.test.js +0 -67
  241. package/dist/tests/unit/strategies/grid/grid-calculator.test.js.map +0 -1
  242. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts +0 -2
  243. package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts.map +0 -1
  244. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js +0 -211
  245. package/dist/tests/unit/strategies/grid/grid-order-manager.test.js.map +0 -1
  246. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts +0 -2
  247. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts.map +0 -1
  248. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js +0 -197
  249. package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js.map +0 -1
  250. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts +0 -2
  251. package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts.map +0 -1
  252. package/dist/tests/unit/strategies/grid/grid-strategy.test.js +0 -429
  253. package/dist/tests/unit/strategies/grid/grid-strategy.test.js.map +0 -1
  254. package/dist/tests/unit/utils/logger.test.d.ts +0 -2
  255. package/dist/tests/unit/utils/logger.test.d.ts.map +0 -1
  256. package/dist/tests/unit/utils/logger.test.js +0 -260
  257. package/dist/tests/unit/utils/logger.test.js.map +0 -1
  258. package/dist/tests/unit/utils/symbol-utils.test.d.ts +0 -2
  259. package/dist/tests/unit/utils/symbol-utils.test.d.ts.map +0 -1
  260. package/dist/tests/unit/utils/symbol-utils.test.js +0 -178
  261. package/dist/tests/unit/utils/symbol-utils.test.js.map +0 -1
  262. package/dist/types/price-aggregation.d.ts +0 -31
  263. package/dist/types/price-aggregation.d.ts.map +0 -1
  264. package/dist/types/price-aggregation.js +0 -6
  265. package/dist/types/price-aggregation.js.map +0 -1
  266. package/dist/utils/crypto.d.ts +0 -15
  267. package/dist/utils/crypto.d.ts.map +0 -1
  268. package/dist/utils/crypto.js +0 -50
  269. package/dist/utils/crypto.js.map +0 -1
  270. package/dist/utils/validation.d.ts +0 -36
  271. package/dist/utils/validation.d.ts.map +0 -1
  272. package/dist/utils/validation.js +0 -174
  273. package/dist/utils/validation.js.map +0 -1
package/README.md CHANGED
@@ -17,7 +17,40 @@ Traditional market-making services are expensive and fragmented, making it diffi
17
17
 
18
18
  This toolkit aims to improve liquidity for Cardano projects, reduce trading spreads, and potentially become the standard liquidity infrastructure for the Cardano ecosystem.
19
19
 
20
- ## Getting Started
20
+ ## Quick Start
21
+
22
+ ### CLI Tool
23
+
24
+ ```bash
25
+ # 1. Install & Setup OpenMM
26
+ npm install -g openmm
27
+ npx openmm setup
28
+ ```
29
+
30
+ The setup wizard will:
31
+ - Let you select exchanges (MEXC, Gate.io, Kraken, Bitget)
32
+ - Prompt for API credentials
33
+ - Create a `.env` file with your credentials
34
+
35
+ ### MCP Server — For AI Agents
36
+
37
+ ```bash
38
+ # 2. Install & Setup OpenMM MCP (13 tools)
39
+ npm install -g @qbtlabs/openmm-mcp
40
+ npx @qbtlabs/openmm-mcp setup
41
+ ```
42
+
43
+ Configures Claude Desktop, Claude Code, Cursor, or Windsurf to use OpenMM tools.
44
+
45
+ ### Verify Installation
46
+
47
+ ```bash
48
+ openmm balance --exchange mexc
49
+ ```
50
+
51
+ Or ask your AI agent: *"What is my balance on MEXC?"*
52
+
53
+ ## Getting Started (Development)
21
54
 
22
55
  ### Prerequisites
23
56
 
package/dist/cli/cli.js CHANGED
@@ -1,42 +1,61 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const balance_1 = require("./commands/balance");
10
- const orders_1 = require("./commands/orders");
11
- const ticker_1 = require("./commands/ticker");
12
- const orderbook_1 = require("./commands/orderbook");
13
- const trades_1 = require("./commands/trades");
14
- const pool_discovery_1 = require("./commands/pool-discovery");
15
- const trade_1 = require("./commands/trade");
16
- const price_comparison_1 = require("./commands/price-comparison");
17
- const program = new commander_1.Command();
18
- program.name('openmm').description('OpenMM - Universal Market Making Toolkit').version('1.0.0');
19
- program.addCommand(balance_1.balanceCommand);
20
- program.addCommand(orders_1.ordersCommand);
21
- program.addCommand(ticker_1.tickerCommand);
22
- program.addCommand(orderbook_1.orderbookCommand);
23
- program.addCommand(trades_1.tradesCommand);
24
- program.addCommand(pool_discovery_1.poolDiscoveryCommand);
25
- program.addCommand(trade_1.tradeCommand);
26
- program.addCommand(price_comparison_1.priceComparisonCommand);
27
- program.exitOverride(err => {
28
- if (err.code === 'commander.unknownCommand') {
29
- console.error(chalk_1.default.red(`Unknown command: ${err.message}`));
30
- console.log(chalk_1.default.yellow('Run "openmm --help" to see available commands'));
31
- process.exit(1);
32
- }
33
- if (err.code === 'commander.helpDisplayed') {
34
- process.exit(0);
4
+ // Handle setup command before importing modules that require credentials
5
+ if (process.argv[2] === 'setup') {
6
+ import('./commands/setup.js').then(({ setupCommand }) => {
7
+ const { Command } = require('commander');
8
+ const program = new Command();
9
+ program.name('openmm').description('OpenMM - Universal Market Making Toolkit').version('1.0.0');
10
+ program.addCommand(setupCommand);
11
+ program.parse(process.argv);
12
+ });
13
+ }
14
+ else {
15
+ // Normal CLI with all commands
16
+ runCli();
17
+ }
18
+ async function runCli() {
19
+ const { Command } = await import('commander');
20
+ const chalk = (await import('chalk')).default;
21
+ const { balanceCommand } = await import('./commands/balance.js');
22
+ const { ordersCommand } = await import('./commands/orders.js');
23
+ const { tickerCommand } = await import('./commands/ticker.js');
24
+ const { orderbookCommand } = await import('./commands/orderbook.js');
25
+ const { tradesCommand } = await import('./commands/trades.js');
26
+ const { ohlcvCommand } = await import('./commands/ohlcv.js');
27
+ const { poolDiscoveryCommand } = await import('./commands/pool-discovery.js');
28
+ const { tradeCommand } = await import('./commands/trade.js');
29
+ const { priceComparisonCommand } = await import('./commands/price-comparison.js');
30
+ const { walletCommand } = await import('./commands/wallet.js');
31
+ const { setupCommand } = await import('./commands/setup.js');
32
+ const program = new Command();
33
+ program.name('openmm').description('OpenMM - Universal Market Making Toolkit').version('1.0.0');
34
+ program.addCommand(setupCommand);
35
+ program.addCommand(balanceCommand);
36
+ program.addCommand(ordersCommand);
37
+ program.addCommand(tickerCommand);
38
+ program.addCommand(orderbookCommand);
39
+ program.addCommand(tradesCommand);
40
+ program.addCommand(ohlcvCommand);
41
+ program.addCommand(poolDiscoveryCommand);
42
+ program.addCommand(tradeCommand);
43
+ program.addCommand(priceComparisonCommand);
44
+ program.addCommand(walletCommand);
45
+ program.exitOverride(err => {
46
+ if (err.code === 'commander.unknownCommand') {
47
+ console.error(chalk.red(`Unknown command: ${err.message}`));
48
+ console.log(chalk.yellow('Run "openmm --help" to see available commands'));
49
+ process.exit(1);
50
+ }
51
+ if (err.code === 'commander.helpDisplayed') {
52
+ process.exit(0);
53
+ }
54
+ throw err;
55
+ });
56
+ program.parse(process.argv);
57
+ if (process.argv.length === 2) {
58
+ program.help();
35
59
  }
36
- throw err;
37
- });
38
- program.parse(process.argv);
39
- if (process.argv.length === 2) {
40
- program.help();
41
60
  }
42
61
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,gDAAoD;AACpD,8CAAkD;AAClD,8CAAkD;AAClD,oDAAwD;AACxD,8CAAkD;AAClD,8DAAiE;AACjE,4CAAgD;AAChD,kEAAqE;AAErE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhG,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,qCAAoB,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,yCAAsB,CAAC,CAAC;AAE3C,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;IACzB,IAAI,GAAG,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";;;AAEA,yEAAyE;AACzE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IAChC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACtD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,+BAA+B;IAC/B,MAAM,EAAE,CAAC;AACX,CAAC;AAED,KAAK,UAAU,MAAM;IACnB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACjE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC/D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC/D,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACrE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC/D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC7D,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAC9E,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC7D,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAClF,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC/D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAElC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const ohlcvCommand: Command;
3
+ //# sourceMappingURL=ohlcv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohlcv.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ohlcv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,YAAY,SAqGrB,CAAC"}
@@ -0,0 +1,115 @@
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.ohlcvCommand = void 0;
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const exchange_factory_1 = require("../exchange-factory");
10
+ const validation_1 = require("../utils/validation");
11
+ const error_handler_1 = require("../utils/error-handler");
12
+ const VALID_TIMEFRAMES = ['1m', '5m', '15m', '30m', '1h', '4h', '1d', '1w'];
13
+ function validateTimeframe(timeframe) {
14
+ if (!VALID_TIMEFRAMES.includes(timeframe)) {
15
+ console.error(chalk_1.default.red(`❌ Invalid timeframe: ${timeframe}`));
16
+ console.log(chalk_1.default.yellow(`Valid timeframes: ${VALID_TIMEFRAMES.join(', ')}`));
17
+ process.exit(1);
18
+ }
19
+ return timeframe;
20
+ }
21
+ exports.ohlcvCommand = new commander_1.Command('ohlcv')
22
+ .description('Get historical OHLCV (candlestick) data for a trading pair')
23
+ .requiredOption('-e, --exchange <exchange>', 'Exchange to query')
24
+ .requiredOption('-s, --symbol <symbol>', 'Trading pair symbol (e.g., BTC/USDT)')
25
+ .option('-t, --timeframe <timeframe>', 'Candle timeframe (1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w)', '1h')
26
+ .option('-l, --limit <limit>', 'Number of candles to fetch (default: 100, max: 1000)', '100')
27
+ .option('--json', 'Output in JSON format')
28
+ .action(async (options) => {
29
+ await (0, error_handler_1.executeCommand)(async () => {
30
+ const exchange = (0, validation_1.validateExchange)(options.exchange);
31
+ const symbol = (0, validation_1.validateSymbol)(options.symbol);
32
+ const timeframe = validateTimeframe(options.timeframe);
33
+ const limit = parseInt(options.limit);
34
+ if (isNaN(limit) || limit <= 0) {
35
+ console.error(chalk_1.default.red('❌ Limit must be a positive number'));
36
+ process.exit(1);
37
+ }
38
+ if (limit > 1000) {
39
+ console.error(chalk_1.default.red('❌ Limit cannot exceed 1000'));
40
+ process.exit(1);
41
+ }
42
+ try {
43
+ const connector = await exchange_factory_1.ExchangeFactory.getExchange(exchange);
44
+ const ohlcv = await connector.getOHLCV(symbol, timeframe, limit);
45
+ if (options.json) {
46
+ console.log(JSON.stringify(ohlcv, null, 2));
47
+ }
48
+ else {
49
+ if (ohlcv.length === 0) {
50
+ console.log(chalk_1.default.yellow(`No OHLCV data found for ${symbol}`));
51
+ return;
52
+ }
53
+ console.log(`\n${chalk_1.default.bold.cyan(`${symbol} OHLCV Data`)} (${timeframe}, ${ohlcv.length} candles):`);
54
+ console.log(chalk_1.default.gray('Date/Time │ Open │ High │ Low │ Close │ Volume'));
55
+ console.log(chalk_1.default.gray('─────────────────────┼──────────────┼──────────────┼──────────────┼──────────────┼──────────────'));
56
+ // Show last 20 candles in table format, or all if less than 20
57
+ const displayCandles = ohlcv.slice(-20);
58
+ displayCandles.forEach(candle => {
59
+ const date = new Date(candle.timestamp).toLocaleString('en-US', {
60
+ month: '2-digit',
61
+ day: '2-digit',
62
+ hour: '2-digit',
63
+ minute: '2-digit',
64
+ });
65
+ const dateStr = date.padEnd(20);
66
+ const open = candle.open.toFixed(8).padStart(12);
67
+ const high = candle.high.toFixed(8).padStart(12);
68
+ const low = candle.low.toFixed(8).padStart(12);
69
+ const close = candle.close.toFixed(8).padStart(12);
70
+ const volume = candle.volume.toLocaleString(undefined, { maximumFractionDigits: 2 }).padStart(12);
71
+ // Color based on candle direction
72
+ const priceColor = candle.close >= candle.open ? chalk_1.default.green : chalk_1.default.red;
73
+ console.log(`${dateStr} │ ${priceColor(open)} │ ${priceColor(high)} │ ${priceColor(low)} │ ${priceColor(close)} │ ${chalk_1.default.blue(volume)}`);
74
+ });
75
+ // Summary stats
76
+ const latestCandle = ohlcv[ohlcv.length - 1];
77
+ const oldestCandle = ohlcv[0];
78
+ const highestHigh = Math.max(...ohlcv.map(c => c.high));
79
+ const lowestLow = Math.min(...ohlcv.map(c => c.low));
80
+ const totalVolume = ohlcv.reduce((sum, c) => sum + c.volume, 0);
81
+ const priceChange = latestCandle.close - oldestCandle.open;
82
+ const priceChangePercent = (priceChange / oldestCandle.open) * 100;
83
+ console.log(`\n${chalk_1.default.bold('Summary')}:`);
84
+ console.log(` Period: ${new Date(oldestCandle.timestamp).toLocaleString()} - ${new Date(latestCandle.timestamp).toLocaleString()}`);
85
+ console.log(` Highest High: ${chalk_1.default.green('$' + highestHigh.toFixed(8))}`);
86
+ console.log(` Lowest Low: ${chalk_1.default.red('$' + lowestLow.toFixed(8))}`);
87
+ console.log(` Total Volume: ${chalk_1.default.blue(totalVolume.toLocaleString(undefined, { maximumFractionDigits: 2 }))}`);
88
+ const changeColor = priceChange >= 0 ? chalk_1.default.green : chalk_1.default.red;
89
+ const changeSign = priceChange >= 0 ? '+' : '';
90
+ console.log(` Price Change: ${changeColor(changeSign + priceChange.toFixed(8) + ' (' + changeSign + priceChangePercent.toFixed(2) + '%)')}`);
91
+ }
92
+ }
93
+ catch (error) {
94
+ (0, error_handler_1.handleError)(error, 'OHLCV Query');
95
+ }
96
+ }, 'ohlcv command');
97
+ });
98
+ exports.ohlcvCommand.addHelpText('after', `
99
+ Examples:
100
+ $ openmm ohlcv --exchange mexc --symbol BTC/USDT # Get 100 hourly candles
101
+ $ openmm ohlcv --exchange mexc --symbol BTC/USDT --timeframe 1h --limit 500
102
+ $ openmm ohlcv --exchange kraken --symbol BTC/USD --timeframe 1d --limit 100 --json
103
+ $ openmm ohlcv -e gateio -s ETH/USDT -t 4h -l 200
104
+
105
+ Supported Timeframes:
106
+ 1m - 1 minute
107
+ 5m - 5 minutes
108
+ 15m - 15 minutes
109
+ 30m - 30 minutes
110
+ 1h - 1 hour
111
+ 4h - 4 hours
112
+ 1d - 1 day
113
+ 1w - 1 week
114
+ `);
115
+ //# sourceMappingURL=ohlcv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohlcv.js","sourceRoot":"","sources":["../../../src/cli/commands/ohlcv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const setupCommand: Command;
3
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmPpC,eAAO,MAAM,YAAY,SAIrB,CAAC"}
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.setupCommand = void 0;
40
+ const commander_1 = require("commander");
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const readline = __importStar(require("readline"));
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ const EXCHANGES = [
46
+ {
47
+ id: 'mexc',
48
+ name: 'MEXC',
49
+ fields: [
50
+ { key: 'MEXC_API_KEY', label: 'API Key' },
51
+ { key: 'MEXC_SECRET', label: 'Secret Key' },
52
+ ],
53
+ docsUrl: 'https://www.mexc.com/api',
54
+ },
55
+ {
56
+ id: 'gateio',
57
+ name: 'Gate.io',
58
+ fields: [
59
+ { key: 'GATEIO_API_KEY', label: 'API Key' },
60
+ { key: 'GATEIO_SECRET', label: 'Secret Key' },
61
+ ],
62
+ docsUrl: 'https://www.gate.io/myaccount/api_key_manage',
63
+ },
64
+ {
65
+ id: 'kraken',
66
+ name: 'Kraken',
67
+ fields: [
68
+ { key: 'KRAKEN_API_KEY', label: 'API Key' },
69
+ { key: 'KRAKEN_SECRET', label: 'Private Key' },
70
+ ],
71
+ docsUrl: 'https://www.kraken.com/u/security/api',
72
+ },
73
+ {
74
+ id: 'bitget',
75
+ name: 'Bitget',
76
+ fields: [
77
+ { key: 'BITGET_API_KEY', label: 'API Key' },
78
+ { key: 'BITGET_SECRET', label: 'Secret Key' },
79
+ { key: 'BITGET_PASSPHRASE', label: 'Passphrase' },
80
+ ],
81
+ docsUrl: 'https://www.bitget.com/account/newapi',
82
+ },
83
+ ];
84
+ const BANNER = `
85
+ ${chalk_1.default.cyan('╔═══════════════════════════════════════════════════════════════╗')}
86
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.cyan('║')}
87
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.bold.white('██████╗ ██████╗ ███████╗███╗ ██╗███╗ ███╗███╗ ███╗')} ${chalk_1.default.cyan('║')}
88
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.bold.white('██╔═══██╗██╔══██╗██╔════╝████╗ ██║████╗ ████║████╗ ████║')} ${chalk_1.default.cyan('║')}
89
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.bold.white('██║ ██║██████╔╝█████╗ ██╔██╗ ██║██╔████╔██║██╔████╔██║')} ${chalk_1.default.cyan('║')}
90
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.bold.white('██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║██║╚██╔╝██║██║╚██╔╝██║')} ${chalk_1.default.cyan('║')}
91
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.bold.white('╚██████╔╝██║ ███████╗██║ ╚████║██║ ╚═╝ ██║██║ ╚═╝ ██║')} ${chalk_1.default.cyan('║')}
92
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.bold.white('╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝')} ${chalk_1.default.cyan('║')}
93
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.cyan('║')}
94
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.gray('AI-Native Market Making Infrastructure')} ${chalk_1.default.cyan('║')}
95
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.gray('Configure your exchange API credentials')} ${chalk_1.default.cyan('║')}
96
+ ${chalk_1.default.cyan('║')} ${chalk_1.default.cyan('║')}
97
+ ${chalk_1.default.cyan('╚═══════════════════════════════════════════════════════════════╝')}
98
+ `;
99
+ function createReadlineInterface() {
100
+ return readline.createInterface({
101
+ input: process.stdin,
102
+ output: process.stdout,
103
+ });
104
+ }
105
+ function question(rl, prompt) {
106
+ return new Promise(resolve => {
107
+ rl.question(prompt, answer => {
108
+ resolve(answer.trim());
109
+ });
110
+ });
111
+ }
112
+ function selectMultiple(rl, prompt, options) {
113
+ return new Promise(resolve => {
114
+ console.log(`\n${chalk_1.default.bold(prompt)}`);
115
+ options.forEach((opt, i) => console.log(` ${chalk_1.default.cyan(i + 1)}. ${opt.name}`));
116
+ console.log(`\n ${chalk_1.default.gray('Enter numbers separated by commas (e.g., 1,2,3)')}`);
117
+ console.log(` ${chalk_1.default.gray('Or press Enter for all exchanges')}`);
118
+ rl.question(`\n${chalk_1.default.yellow('Your selection:')} `, answer => {
119
+ if (!answer.trim()) {
120
+ resolve(options.map(o => o.id));
121
+ return;
122
+ }
123
+ const indices = answer
124
+ .split(',')
125
+ .map(s => parseInt(s.trim()) - 1)
126
+ .filter(i => i >= 0 && i < options.length);
127
+ if (indices.length === 0) {
128
+ resolve(options.map(o => o.id));
129
+ }
130
+ else {
131
+ resolve(indices.map(i => options[i].id));
132
+ }
133
+ });
134
+ });
135
+ }
136
+ function readEnvFile(envPath) {
137
+ const env = {};
138
+ try {
139
+ if (fs.existsSync(envPath)) {
140
+ const content = fs.readFileSync(envPath, 'utf-8');
141
+ content.split('\n').forEach(line => {
142
+ const trimmed = line.trim();
143
+ if (trimmed && !trimmed.startsWith('#')) {
144
+ const [key, ...valueParts] = trimmed.split('=');
145
+ if (key) {
146
+ env[key.trim()] = valueParts.join('=').trim();
147
+ }
148
+ }
149
+ });
150
+ }
151
+ }
152
+ catch {
153
+ // File doesn't exist or is unreadable
154
+ }
155
+ return env;
156
+ }
157
+ function writeEnvFile(envPath, env) {
158
+ const lines = [
159
+ '# OpenMM Exchange Credentials',
160
+ '# Generated by OpenMM Setup Wizard',
161
+ '',
162
+ ];
163
+ // Group by exchange
164
+ const exchangeKeys = {
165
+ MEXC: ['MEXC_API_KEY', 'MEXC_SECRET', 'MEXC_UID'],
166
+ GATEIO: ['GATEIO_API_KEY', 'GATEIO_SECRET'],
167
+ KRAKEN: ['KRAKEN_API_KEY', 'KRAKEN_SECRET'],
168
+ BITGET: ['BITGET_API_KEY', 'BITGET_SECRET', 'BITGET_PASSPHRASE'],
169
+ };
170
+ const usedKeys = new Set();
171
+ for (const [exchange, keys] of Object.entries(exchangeKeys)) {
172
+ const hasAny = keys.some(k => env[k]);
173
+ if (hasAny) {
174
+ lines.push(`# ${exchange}`);
175
+ for (const key of keys) {
176
+ if (env[key]) {
177
+ lines.push(`${key}=${env[key]}`);
178
+ usedKeys.add(key);
179
+ }
180
+ }
181
+ lines.push('');
182
+ }
183
+ }
184
+ // Add any remaining keys
185
+ for (const [key, value] of Object.entries(env)) {
186
+ if (!usedKeys.has(key) && value) {
187
+ lines.push(`${key}=${value}`);
188
+ }
189
+ }
190
+ fs.writeFileSync(envPath, lines.join('\n'));
191
+ }
192
+ async function runSetup() {
193
+ console.log(BANNER);
194
+ const rl = createReadlineInterface();
195
+ const envPath = path.join(process.cwd(), '.env');
196
+ try {
197
+ // Read existing .env
198
+ const existingEnv = readEnvFile(envPath);
199
+ // Select exchanges
200
+ const exchangeOptions = EXCHANGES.map(e => ({ id: e.id, name: e.name }));
201
+ const selectedExchangeIds = await selectMultiple(rl, 'Which exchanges do you want to configure?', exchangeOptions);
202
+ const selectedExchanges = EXCHANGES.filter(e => selectedExchangeIds.includes(e.id));
203
+ if (selectedExchanges.length === 0) {
204
+ console.log(chalk_1.default.yellow('\n⚠️ No exchanges selected. Exiting.'));
205
+ process.exit(0);
206
+ }
207
+ // Collect credentials
208
+ const newEnv = {};
209
+ for (const exchange of selectedExchanges) {
210
+ console.log(`\n${chalk_1.default.cyan('🔐')} ${chalk_1.default.bold(exchange.name)} credentials`);
211
+ console.log(` ${chalk_1.default.gray(`Get your API key at: ${exchange.docsUrl}`)}`);
212
+ for (const field of exchange.fields) {
213
+ const existingValue = existingEnv[field.key];
214
+ const hint = existingValue ? chalk_1.default.gray(` (current: ${existingValue.slice(0, 8)}...)`) : '';
215
+ const value = await question(rl, ` ${field.label}${hint}: `);
216
+ if (value) {
217
+ newEnv[field.key] = value;
218
+ }
219
+ else if (existingValue) {
220
+ newEnv[field.key] = existingValue;
221
+ }
222
+ }
223
+ }
224
+ // Merge with existing env
225
+ const mergedEnv = { ...existingEnv, ...newEnv };
226
+ // Write .env file
227
+ writeEnvFile(envPath, mergedEnv);
228
+ console.log(`\n${chalk_1.default.green('✅')} Credentials saved to ${chalk_1.default.cyan('.env')}`);
229
+ // Show configured exchanges
230
+ const configuredExchanges = [];
231
+ if (mergedEnv.MEXC_API_KEY)
232
+ configuredExchanges.push('MEXC');
233
+ if (mergedEnv.GATEIO_API_KEY)
234
+ configuredExchanges.push('Gate.io');
235
+ if (mergedEnv.KRAKEN_API_KEY)
236
+ configuredExchanges.push('Kraken');
237
+ if (mergedEnv.BITGET_API_KEY)
238
+ configuredExchanges.push('Bitget');
239
+ if (configuredExchanges.length > 0) {
240
+ console.log(`\n${chalk_1.default.cyan('📊')} Configured exchanges: ${chalk_1.default.bold(configuredExchanges.join(', '))}`);
241
+ }
242
+ console.log(`\n${chalk_1.default.yellow('💡')} Try running: ${chalk_1.default.cyan('openmm balance --exchange mexc')}\n`);
243
+ }
244
+ finally {
245
+ rl.close();
246
+ }
247
+ }
248
+ exports.setupCommand = new commander_1.Command('setup')
249
+ .description('Interactive setup wizard for exchange API credentials')
250
+ .action(async () => {
251
+ await runSetup();
252
+ });
253
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * OpenMM Wallet CLI Commands
3
+ * Manage x402 payment wallets for EVM and Solana chains.
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare const walletCommand: Command;
7
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wallet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,aAAa,SAoBvB,CAAC"}