@3rd-eye-labs/openmm 0.0.1

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 (207) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -0
  3. package/dist/cli/cli.d.ts +3 -0
  4. package/dist/cli/cli.d.ts.map +1 -0
  5. package/dist/cli/cli.js +43 -0
  6. package/dist/cli/cli.js.map +1 -0
  7. package/dist/cli/commands/balance.d.ts +3 -0
  8. package/dist/cli/commands/balance.d.ts.map +1 -0
  9. package/dist/cli/commands/balance.js +51 -0
  10. package/dist/cli/commands/balance.js.map +1 -0
  11. package/dist/cli/commands/orderbook.d.ts +3 -0
  12. package/dist/cli/commands/orderbook.d.ts.map +1 -0
  13. package/dist/cli/commands/orderbook.js +83 -0
  14. package/dist/cli/commands/orderbook.js.map +1 -0
  15. package/dist/cli/commands/orders.d.ts +3 -0
  16. package/dist/cli/commands/orders.d.ts.map +1 -0
  17. package/dist/cli/commands/orders.js +196 -0
  18. package/dist/cli/commands/orders.js.map +1 -0
  19. package/dist/cli/commands/pool-discovery.d.ts +3 -0
  20. package/dist/cli/commands/pool-discovery.d.ts.map +1 -0
  21. package/dist/cli/commands/pool-discovery.js +60 -0
  22. package/dist/cli/commands/pool-discovery.js.map +1 -0
  23. package/dist/cli/commands/ticker.d.ts +3 -0
  24. package/dist/cli/commands/ticker.d.ts.map +1 -0
  25. package/dist/cli/commands/ticker.js +51 -0
  26. package/dist/cli/commands/ticker.js.map +1 -0
  27. package/dist/cli/commands/trade.d.ts +3 -0
  28. package/dist/cli/commands/trade.d.ts.map +1 -0
  29. package/dist/cli/commands/trade.js +110 -0
  30. package/dist/cli/commands/trade.js.map +1 -0
  31. package/dist/cli/commands/trades.d.ts +3 -0
  32. package/dist/cli/commands/trades.d.ts.map +1 -0
  33. package/dist/cli/commands/trades.js +73 -0
  34. package/dist/cli/commands/trades.js.map +1 -0
  35. package/dist/cli/exchange-factory.d.ts +40 -0
  36. package/dist/cli/exchange-factory.d.ts.map +1 -0
  37. package/dist/cli/exchange-factory.js +77 -0
  38. package/dist/cli/exchange-factory.js.map +1 -0
  39. package/dist/cli/pool-discovery-core.d.ts +54 -0
  40. package/dist/cli/pool-discovery-core.d.ts.map +1 -0
  41. package/dist/cli/pool-discovery-core.js +193 -0
  42. package/dist/cli/pool-discovery-core.js.map +1 -0
  43. package/dist/cli/utils/error-handler.d.ts +40 -0
  44. package/dist/cli/utils/error-handler.d.ts.map +1 -0
  45. package/dist/cli/utils/error-handler.js +117 -0
  46. package/dist/cli/utils/error-handler.js.map +1 -0
  47. package/dist/cli/utils/validation.d.ts +45 -0
  48. package/dist/cli/utils/validation.d.ts.map +1 -0
  49. package/dist/cli/utils/validation.js +118 -0
  50. package/dist/cli/utils/validation.js.map +1 -0
  51. package/dist/config/environment.d.ts +25 -0
  52. package/dist/config/environment.d.ts.map +1 -0
  53. package/dist/config/environment.js +72 -0
  54. package/dist/config/environment.js.map +1 -0
  55. package/dist/config/index.d.ts +3 -0
  56. package/dist/config/index.d.ts.map +1 -0
  57. package/dist/config/index.js +21 -0
  58. package/dist/config/index.js.map +1 -0
  59. package/dist/config/launcher-config.d.ts +17 -0
  60. package/dist/config/launcher-config.d.ts.map +1 -0
  61. package/dist/config/launcher-config.js +14 -0
  62. package/dist/config/launcher-config.js.map +1 -0
  63. package/dist/config/price-aggregation.d.ts +49 -0
  64. package/dist/config/price-aggregation.d.ts.map +1 -0
  65. package/dist/config/price-aggregation.js +89 -0
  66. package/dist/config/price-aggregation.js.map +1 -0
  67. package/dist/core/exchange/base-exchange-connector.d.ts +45 -0
  68. package/dist/core/exchange/base-exchange-connector.d.ts.map +1 -0
  69. package/dist/core/exchange/base-exchange-connector.js +43 -0
  70. package/dist/core/exchange/base-exchange-connector.js.map +1 -0
  71. package/dist/core/exchange/base-exchange-data-mapper.d.ts +58 -0
  72. package/dist/core/exchange/base-exchange-data-mapper.d.ts.map +1 -0
  73. package/dist/core/exchange/base-exchange-data-mapper.js +60 -0
  74. package/dist/core/exchange/base-exchange-data-mapper.js.map +1 -0
  75. package/dist/core/price-aggregation/cardano-price-service.d.ts +31 -0
  76. package/dist/core/price-aggregation/cardano-price-service.d.ts.map +1 -0
  77. package/dist/core/price-aggregation/cardano-price-service.js +157 -0
  78. package/dist/core/price-aggregation/cardano-price-service.js.map +1 -0
  79. package/dist/core/price-aggregation/index.d.ts +11 -0
  80. package/dist/core/price-aggregation/index.d.ts.map +1 -0
  81. package/dist/core/price-aggregation/index.js +21 -0
  82. package/dist/core/price-aggregation/index.js.map +1 -0
  83. package/dist/core/price-aggregation/iris-api-client.d.ts +16 -0
  84. package/dist/core/price-aggregation/iris-api-client.d.ts.map +1 -0
  85. package/dist/core/price-aggregation/iris-api-client.js +62 -0
  86. package/dist/core/price-aggregation/iris-api-client.js.map +1 -0
  87. package/dist/core/price-aggregation/iris-pool-discovery.d.ts +37 -0
  88. package/dist/core/price-aggregation/iris-pool-discovery.d.ts.map +1 -0
  89. package/dist/core/price-aggregation/iris-pool-discovery.js +123 -0
  90. package/dist/core/price-aggregation/iris-pool-discovery.js.map +1 -0
  91. package/dist/core/price-aggregation/price-calculator.d.ts +27 -0
  92. package/dist/core/price-aggregation/price-calculator.d.ts.map +1 -0
  93. package/dist/core/price-aggregation/price-calculator.js +84 -0
  94. package/dist/core/price-aggregation/price-calculator.js.map +1 -0
  95. package/dist/core/risk-management/risk-manager.d.ts +14 -0
  96. package/dist/core/risk-management/risk-manager.d.ts.map +1 -0
  97. package/dist/core/risk-management/risk-manager.js +40 -0
  98. package/dist/core/risk-management/risk-manager.js.map +1 -0
  99. package/dist/core/strategy/base-strategy.d.ts +26 -0
  100. package/dist/core/strategy/base-strategy.d.ts.map +1 -0
  101. package/dist/core/strategy/base-strategy.js +46 -0
  102. package/dist/core/strategy/base-strategy.js.map +1 -0
  103. package/dist/core/strategy/strategy-factory.d.ts +7 -0
  104. package/dist/core/strategy/strategy-factory.d.ts.map +1 -0
  105. package/dist/core/strategy/strategy-factory.js +64 -0
  106. package/dist/core/strategy/strategy-factory.js.map +1 -0
  107. package/dist/exchanges/mexc/mexc-auth.d.ts +42 -0
  108. package/dist/exchanges/mexc/mexc-auth.d.ts.map +1 -0
  109. package/dist/exchanges/mexc/mexc-auth.js +122 -0
  110. package/dist/exchanges/mexc/mexc-auth.js.map +1 -0
  111. package/dist/exchanges/mexc/mexc-connector.d.ts +125 -0
  112. package/dist/exchanges/mexc/mexc-connector.d.ts.map +1 -0
  113. package/dist/exchanges/mexc/mexc-connector.js +422 -0
  114. package/dist/exchanges/mexc/mexc-connector.js.map +1 -0
  115. package/dist/exchanges/mexc/mexc-data-mapper.d.ts +50 -0
  116. package/dist/exchanges/mexc/mexc-data-mapper.d.ts.map +1 -0
  117. package/dist/exchanges/mexc/mexc-data-mapper.js +127 -0
  118. package/dist/exchanges/mexc/mexc-data-mapper.js.map +1 -0
  119. package/dist/exchanges/mexc/mexc-protobuf-decoder.d.ts +43 -0
  120. package/dist/exchanges/mexc/mexc-protobuf-decoder.d.ts.map +1 -0
  121. package/dist/exchanges/mexc/mexc-protobuf-decoder.js +235 -0
  122. package/dist/exchanges/mexc/mexc-protobuf-decoder.js.map +1 -0
  123. package/dist/exchanges/mexc/mexc-user-stream.d.ts +81 -0
  124. package/dist/exchanges/mexc/mexc-user-stream.d.ts.map +1 -0
  125. package/dist/exchanges/mexc/mexc-user-stream.js +253 -0
  126. package/dist/exchanges/mexc/mexc-user-stream.js.map +1 -0
  127. package/dist/exchanges/mexc/mexc-utils.d.ts +31 -0
  128. package/dist/exchanges/mexc/mexc-utils.d.ts.map +1 -0
  129. package/dist/exchanges/mexc/mexc-utils.js +186 -0
  130. package/dist/exchanges/mexc/mexc-utils.js.map +1 -0
  131. package/dist/exchanges/mexc/mexc-websocket.d.ts +124 -0
  132. package/dist/exchanges/mexc/mexc-websocket.d.ts.map +1 -0
  133. package/dist/exchanges/mexc/mexc-websocket.js +496 -0
  134. package/dist/exchanges/mexc/mexc-websocket.js.map +1 -0
  135. package/dist/index.d.ts +12 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +42 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/strategies/grid/grid-calculator.d.ts +7 -0
  140. package/dist/strategies/grid/grid-calculator.d.ts.map +1 -0
  141. package/dist/strategies/grid/grid-calculator.js +34 -0
  142. package/dist/strategies/grid/grid-calculator.js.map +1 -0
  143. package/dist/strategies/grid/grid-order-manager.d.ts +23 -0
  144. package/dist/strategies/grid/grid-order-manager.d.ts.map +1 -0
  145. package/dist/strategies/grid/grid-order-manager.js +99 -0
  146. package/dist/strategies/grid/grid-order-manager.js.map +1 -0
  147. package/dist/strategies/grid/grid-strategy.d.ts +29 -0
  148. package/dist/strategies/grid/grid-strategy.d.ts.map +1 -0
  149. package/dist/strategies/grid/grid-strategy.js +185 -0
  150. package/dist/strategies/grid/grid-strategy.js.map +1 -0
  151. package/dist/types/account.d.ts +21 -0
  152. package/dist/types/account.d.ts.map +1 -0
  153. package/dist/types/account.js +3 -0
  154. package/dist/types/account.js.map +1 -0
  155. package/dist/types/exchange.d.ts +67 -0
  156. package/dist/types/exchange.d.ts.map +1 -0
  157. package/dist/types/exchange.js +3 -0
  158. package/dist/types/exchange.js.map +1 -0
  159. package/dist/types/grid.d.ts +10 -0
  160. package/dist/types/grid.d.ts.map +1 -0
  161. package/dist/types/grid.js +3 -0
  162. package/dist/types/grid.js.map +1 -0
  163. package/dist/types/index.d.ts +11 -0
  164. package/dist/types/index.d.ts.map +1 -0
  165. package/dist/types/index.js +27 -0
  166. package/dist/types/index.js.map +1 -0
  167. package/dist/types/iris.d.ts +58 -0
  168. package/dist/types/iris.d.ts.map +1 -0
  169. package/dist/types/iris.js +7 -0
  170. package/dist/types/iris.js.map +1 -0
  171. package/dist/types/market.d.ts +16 -0
  172. package/dist/types/market.d.ts.map +1 -0
  173. package/dist/types/market.js +3 -0
  174. package/dist/types/market.js.map +1 -0
  175. package/dist/types/mexc-raw.d.ts +87 -0
  176. package/dist/types/mexc-raw.d.ts.map +1 -0
  177. package/dist/types/mexc-raw.js +7 -0
  178. package/dist/types/mexc-raw.js.map +1 -0
  179. package/dist/types/mexc.d.ts +57 -0
  180. package/dist/types/mexc.d.ts.map +1 -0
  181. package/dist/types/mexc.js +8 -0
  182. package/dist/types/mexc.js.map +1 -0
  183. package/dist/types/price.d.ts +37 -0
  184. package/dist/types/price.d.ts.map +1 -0
  185. package/dist/types/price.js +7 -0
  186. package/dist/types/price.js.map +1 -0
  187. package/dist/types/risk.d.ts +22 -0
  188. package/dist/types/risk.d.ts.map +1 -0
  189. package/dist/types/risk.js +6 -0
  190. package/dist/types/risk.js.map +1 -0
  191. package/dist/types/strategy.d.ts +46 -0
  192. package/dist/types/strategy.d.ts.map +1 -0
  193. package/dist/types/strategy.js +3 -0
  194. package/dist/types/strategy.js.map +1 -0
  195. package/dist/utils/index.d.ts +2 -0
  196. package/dist/utils/index.d.ts.map +1 -0
  197. package/dist/utils/index.js +8 -0
  198. package/dist/utils/index.js.map +1 -0
  199. package/dist/utils/logger.d.ts +29 -0
  200. package/dist/utils/logger.d.ts.map +1 -0
  201. package/dist/utils/logger.js +108 -0
  202. package/dist/utils/logger.js.map +1 -0
  203. package/dist/utils/symbol-utils.d.ts +17 -0
  204. package/dist/utils/symbol-utils.d.ts.map +1 -0
  205. package/dist/utils/symbol-utils.js +41 -0
  206. package/dist/utils/symbol-utils.js.map +1 -0
  207. package/package.json +53 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 OpenMM
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # OpenMM - Cardano's Universal Market Making Toolkit
2
+
3
+ OpenMM is an open-source SDK designed to democratize market-making for Cardano projects. It provides a unified interface for trading Cardano Native Tokens (CNTs) across multiple centralized exchanges.
4
+
5
+ ## What is OpenMM?
6
+
7
+ Traditional market-making services are expensive and fragmented, making it difficult for smaller Cardano projects to maintain healthy liquidity. OpenMM solves this by offering:
8
+
9
+ - **Multi-Exchange Support**: Trade on MEXC, Gate.io, Bitget, Kraken and more through a single interface
10
+ - **Advanced Strategies**: Grid trading, liquidity provision, and dynamic rebalancing
11
+ - **Complete CNT Integration**: Full support for Cardano Native Tokens
12
+
13
+ This toolkit aims to improve liquidity for Cardano projects, reduce trading spreads, and potentially become the standard liquidity infrastructure for the Cardano ecosystem.
14
+
15
+ ## Getting Started
16
+
17
+ ### Prerequisites
18
+
19
+ - Node.js 20.x LTS or higher
20
+ - npm or yarn
21
+
22
+ ### Installation
23
+
24
+ ```bash
25
+ npm install
26
+ ```
27
+
28
+ ### Development
29
+
30
+ ```bash
31
+ npm run dev
32
+ ```
33
+
34
+ ### Build
35
+
36
+ ```bash
37
+ npm run build
38
+ ```
39
+
40
+ ### Testing
41
+
42
+ ```bash
43
+ npm test
44
+ ```
45
+
46
+ ### Linting
47
+
48
+ ```bash
49
+ npm run lint
50
+ ```
51
+
52
+ ## Running Trading Strategies
53
+
54
+ OpenMM includes automated trading strategies for market making:
55
+
56
+ - **CLI Commands**: See [CLI.md](docs/CLI.md) for all available commands
57
+ - **Grid Strategy**: See [GRID_STRATEGY.md](docs/guides/GRID_STRATEGY.md) for grid trading setup and examples
58
+
59
+ ```bash
60
+ # Example: Start grid trading on MEXC
61
+ openmm trade --strategy grid --exchange mexc --symbol INDY/USDT
62
+ ```
63
+
64
+ ## License
65
+
66
+ MIT License - see [LICENSE](./LICENSE) file for details.
67
+
68
+ ## Contributing
69
+
70
+ Please read our contributing guidelines before submitting pull requests.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ 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 program = new commander_1.Command();
17
+ program
18
+ .name('openmm')
19
+ .description('OpenMM - Universal Market Making Toolkit')
20
+ .version('1.0.0');
21
+ program.addCommand(balance_1.balanceCommand);
22
+ program.addCommand(orders_1.ordersCommand);
23
+ program.addCommand(ticker_1.tickerCommand);
24
+ program.addCommand(orderbook_1.orderbookCommand);
25
+ program.addCommand(trades_1.tradesCommand);
26
+ program.addCommand(pool_discovery_1.poolDiscoveryCommand);
27
+ program.addCommand(trade_1.tradeCommand);
28
+ program.exitOverride((err) => {
29
+ if (err.code === 'commander.unknownCommand') {
30
+ console.error(chalk_1.default.red(`Unknown command: ${err.message}`));
31
+ console.log(chalk_1.default.yellow('Run "openmm --help" to see available commands'));
32
+ process.exit(1);
33
+ }
34
+ if (err.code === 'commander.helpDisplayed') {
35
+ process.exit(0);
36
+ }
37
+ throw err;
38
+ });
39
+ program.parse(process.argv);
40
+ if (process.argv.length === 2) {
41
+ program.help();
42
+ }
43
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +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;AAEhD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,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;AAEjC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;IAC3B,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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const balanceCommand: Command;
3
+ //# sourceMappingURL=balance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,cAAc,SAsCvB,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.balanceCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const exchange_factory_1 = require("../exchange-factory");
6
+ const validation_1 = require("../utils/validation");
7
+ const error_handler_1 = require("../utils/error-handler");
8
+ exports.balanceCommand = new commander_1.Command('balance')
9
+ .description('Get account balance from specified exchange')
10
+ .requiredOption('-e, --exchange <exchange>', 'Exchange to query (mexc, gateio, bitget, kraken)')
11
+ .option('-a, --asset <asset>', 'Specific asset to query (e.g., BTC, USDT)')
12
+ .option('--json', 'Output in JSON format')
13
+ .action(async (options) => {
14
+ await (0, error_handler_1.executeCommand)(async () => {
15
+ const exchange = (0, validation_1.validateExchange)(options.exchange);
16
+ try {
17
+ const connector = await exchange_factory_1.ExchangeFactory.getExchange(exchange);
18
+ const allBalances = await connector.getBalance();
19
+ let balance;
20
+ if (options.asset) {
21
+ const asset = options.asset.toUpperCase();
22
+ balance = allBalances[asset] || {
23
+ asset,
24
+ free: 0,
25
+ used: 0,
26
+ total: 0,
27
+ available: 0
28
+ };
29
+ }
30
+ else {
31
+ balance = allBalances;
32
+ }
33
+ if (options.json) {
34
+ console.log(JSON.stringify(balance, null, 2));
35
+ }
36
+ else {
37
+ (0, error_handler_1.displayBalance)(balance, options.asset?.toUpperCase());
38
+ }
39
+ }
40
+ catch (error) {
41
+ (0, error_handler_1.handleError)(error, 'Balance Query');
42
+ }
43
+ }, 'balance command');
44
+ });
45
+ exports.balanceCommand.addHelpText('after', `
46
+ Examples:
47
+ $ openmm balance --exchange mexc # Get all balances
48
+ $ openmm balance --exchange mexc --asset BTC # Get BTC balance only
49
+ $ openmm balance --exchange mexc --json # Output as JSON
50
+ `);
51
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/cli/commands/balance.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,0DAAsD;AACtD,oDAAuD;AACvD,0DAAqF;AAExE,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,6CAA6C,CAAC;KAC1D,cAAc,CAAC,2BAA2B,EAAE,kDAAkD,CAAC;KAC/F,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KAC1E,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAA,8BAAc,EAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,QAAQ,GAAG,IAAA,6BAAgB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,kCAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE9D,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;YACjD,IAAI,OAAO,CAAC;YAEZ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC1C,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI;oBAC9B,KAAK;oBACL,IAAI,EAAE,CAAC;oBACP,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE,CAAC;iBACb,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,WAAW,CAAC;YACxB,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,IAAA,8BAAc,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACxD,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,2BAAW,EAAC,KAAc,EAAE,eAAe,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,sBAAc,CAAC,WAAW,CAAC,OAAO,EAAE;;;;;CAKnC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const orderbookCommand: Command;
3
+ //# sourceMappingURL=orderbook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderbook.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/orderbook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,gBAAgB,SAsEzB,CAAC"}
@@ -0,0 +1,83 @@
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.orderbookCommand = 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
+ exports.orderbookCommand = new commander_1.Command('orderbook')
13
+ .description('Get order book data for a trading pair')
14
+ .alias('book')
15
+ .requiredOption('-e, --exchange <exchange>', 'Exchange to query')
16
+ .requiredOption('-s, --symbol <symbol>', 'Trading pair symbol (e.g., BTC/USDT)')
17
+ .option('-l, --limit <limit>', 'Number of bid/ask levels to display (default: 10)', '10')
18
+ .option('--json', 'Output in JSON format')
19
+ .action(async (options) => {
20
+ await (0, error_handler_1.executeCommand)(async () => {
21
+ const exchange = (0, validation_1.validateExchange)(options.exchange);
22
+ const symbol = (0, validation_1.validateSymbol)(options.symbol);
23
+ const limit = parseInt(options.limit);
24
+ if (isNaN(limit) || limit <= 0) {
25
+ console.error(chalk_1.default.red('❌ Limit must be a positive number'));
26
+ process.exit(1);
27
+ }
28
+ try {
29
+ const connector = await exchange_factory_1.ExchangeFactory.getExchange(exchange);
30
+ const orderbook = await connector.getOrderBook(symbol);
31
+ if (options.json) {
32
+ const limitedOrderbook = {
33
+ ...orderbook,
34
+ bids: orderbook.bids.slice(0, limit),
35
+ asks: orderbook.asks.slice(0, limit)
36
+ };
37
+ console.log(JSON.stringify(limitedOrderbook, null, 2));
38
+ }
39
+ else {
40
+ console.log(`\n${chalk_1.default.bold.cyan(`${orderbook.symbol} Order Book`)}:`);
41
+ console.log(`Updated: ${new Date(orderbook.timestamp).toLocaleString()}\n`);
42
+ // Display asks (highest to lowest price)
43
+ const asks = orderbook.asks.slice(0, limit).reverse();
44
+ console.log(chalk_1.default.bold.red(' ASKS (Sell Orders)'));
45
+ console.log(chalk_1.default.gray(' Price │ Amount │ Total'));
46
+ console.log(chalk_1.default.gray(' ─────────────┼──────────────┼──────────────'));
47
+ asks.forEach(ask => {
48
+ const price = ask.price.toFixed(8).padStart(12);
49
+ const amount = ask.amount.toFixed(8).padStart(12);
50
+ const total = (ask.price * ask.amount).toFixed(8).padStart(12);
51
+ console.log(chalk_1.default.red(` ${price} │ ${amount} │ ${total}`));
52
+ });
53
+ // Spread
54
+ if (orderbook.asks.length > 0 && orderbook.bids.length > 0) {
55
+ const spread = orderbook.asks[0].price - orderbook.bids[0].price;
56
+ const spreadPercent = ((spread / orderbook.asks[0].price) * 100).toFixed(4);
57
+ console.log(chalk_1.default.yellow(`\n Spread: $${spread.toFixed(8)} (${spreadPercent}%)\n`));
58
+ }
59
+ // Display bids (highest to lowest price)
60
+ const bids = orderbook.bids.slice(0, limit);
61
+ console.log(chalk_1.default.bold.green(' BIDS (Buy Orders)'));
62
+ console.log(chalk_1.default.gray(' Price │ Amount │ Total'));
63
+ console.log(chalk_1.default.gray(' ─────────────┼──────────────┼──────────────'));
64
+ bids.forEach(bid => {
65
+ const price = bid.price.toFixed(8).padStart(12);
66
+ const amount = bid.amount.toFixed(8).padStart(12);
67
+ const total = (bid.price * bid.amount).toFixed(8).padStart(12);
68
+ console.log(chalk_1.default.green(` ${price} │ ${amount} │ ${total}`));
69
+ });
70
+ }
71
+ }
72
+ catch (error) {
73
+ (0, error_handler_1.handleError)(error, 'Order Book Query');
74
+ }
75
+ }, 'orderbook command');
76
+ });
77
+ exports.orderbookCommand.addHelpText('after', `
78
+ Examples:
79
+ $ openmm orderbook --exchange mexc --symbol BTC/USDT # Get order book with 10 levels
80
+ $ openmm orderbook --exchange mexc --symbol BTC/USDT --limit 5 # Get order book with 5 levels
81
+ $ openmm book --exchange mexc --symbol ETH/USDT --json # Get order book in JSON format
82
+ `);
83
+ //# sourceMappingURL=orderbook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderbook.js","sourceRoot":"","sources":["../../../src/cli/commands/orderbook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const ordersCommand: Command;
3
+ //# sourceMappingURL=orders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,aAAa,SAC2B,CAAC"}
@@ -0,0 +1,196 @@
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.ordersCommand = 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
+ exports.ordersCommand = new commander_1.Command('orders')
13
+ .description('Manage orders on specified exchange');
14
+ exports.ordersCommand
15
+ .command('list')
16
+ .description('List orders')
17
+ .requiredOption('-e, --exchange <exchange>', 'Exchange to query')
18
+ .option('-s, --symbol <symbol>', 'Filter by trading pair (e.g., BTC/USDT)')
19
+ .option('-l, --limit <limit>', 'Number of orders to display (default: all)', 'all')
20
+ .option('--json', 'Output in JSON format')
21
+ .action(async (options) => {
22
+ await (0, error_handler_1.executeCommand)(async () => {
23
+ const exchange = (0, validation_1.validateExchange)(options.exchange);
24
+ const symbol = options.symbol ? (0, validation_1.validateSymbol)(options.symbol) : undefined;
25
+ let limit;
26
+ if (options.limit !== 'all') {
27
+ limit = parseInt(options.limit);
28
+ if (isNaN(limit) || limit <= 0) {
29
+ console.error(chalk_1.default.red('❌ Limit must be a positive number or "all"'));
30
+ process.exit(1);
31
+ }
32
+ }
33
+ try {
34
+ const connector = await exchange_factory_1.ExchangeFactory.getExchange(exchange);
35
+ let orders = await connector.getOpenOrders(symbol);
36
+ if (limit) {
37
+ orders = orders.slice(0, limit);
38
+ }
39
+ if (options.json) {
40
+ console.log(JSON.stringify(orders, null, 2));
41
+ }
42
+ else {
43
+ if (orders.length === 0) {
44
+ console.log(chalk_1.default.yellow('No open orders found'));
45
+ return;
46
+ }
47
+ const orderData = orders.map(order => ({
48
+ ID: order.id,
49
+ Symbol: order.symbol,
50
+ Side: order.side.toUpperCase(),
51
+ Type: order.type.toUpperCase(),
52
+ Amount: order.amount.toFixed(8),
53
+ Price: order.price ? order.price.toFixed(8) : 'Market',
54
+ Filled: order.filled.toFixed(8),
55
+ Status: order.status.toUpperCase()
56
+ }));
57
+ const limitText = limit ? ` (showing ${Math.min(limit, orders.length)})` : '';
58
+ console.log(`\n${chalk_1.default.bold.cyan('Open Orders')}${symbol ? ` for ${symbol}` : ''}${limitText}:`);
59
+ (0, error_handler_1.displayTable)(orderData);
60
+ }
61
+ }
62
+ catch (error) {
63
+ (0, error_handler_1.handleError)(error, 'List Orders');
64
+ }
65
+ }, 'list orders');
66
+ });
67
+ exports.ordersCommand
68
+ .command('get')
69
+ .description('Get specific order details')
70
+ .requiredOption('-e, --exchange <exchange>', 'Exchange to query')
71
+ .requiredOption('-i, --id <orderId>', 'Order ID')
72
+ .requiredOption('-s, --symbol <symbol>', 'Trading pair symbol')
73
+ .option('--json', 'Output in JSON format')
74
+ .action(async (options) => {
75
+ await (0, error_handler_1.executeCommand)(async () => {
76
+ const exchange = (0, validation_1.validateExchange)(options.exchange);
77
+ const orderId = (0, validation_1.validateOrderId)(options.id);
78
+ const symbol = (0, validation_1.validateSymbol)(options.symbol);
79
+ try {
80
+ const connector = await exchange_factory_1.ExchangeFactory.getExchange(exchange);
81
+ const order = await connector.getOrder(orderId, symbol);
82
+ if (options.json) {
83
+ console.log(JSON.stringify(order, null, 2));
84
+ }
85
+ else {
86
+ console.log(`\n${chalk_1.default.bold.cyan('Order Details')}:`);
87
+ console.log(` ID: ${order.id}`);
88
+ console.log(` Symbol: ${order.symbol}`);
89
+ console.log(` Side: ${chalk_1.default.bold(order.side.toUpperCase())}`);
90
+ console.log(` Type: ${order.type.toUpperCase()}`);
91
+ console.log(` Amount: ${order.amount.toFixed(8)}`);
92
+ console.log(` Price: ${order.price ? order.price.toFixed(8) : 'Market'}`);
93
+ console.log(` Filled: ${chalk_1.default.green(order.filled.toFixed(8))}`);
94
+ console.log(` Remaining: ${chalk_1.default.yellow(order.remaining.toFixed(8))}`);
95
+ console.log(` Status: ${chalk_1.default.bold(order.status.toUpperCase())}`);
96
+ }
97
+ }
98
+ catch (error) {
99
+ (0, error_handler_1.handleError)(error, 'Get Order');
100
+ }
101
+ }, 'get order');
102
+ });
103
+ exports.ordersCommand
104
+ .command('create')
105
+ .description('Create a new order')
106
+ .requiredOption('-e, --exchange <exchange>', 'Exchange to use')
107
+ .requiredOption('-s, --symbol <symbol>', 'Trading pair (e.g., BTC/USDT)')
108
+ .requiredOption('--side <side>', 'Order side (buy/sell)')
109
+ .requiredOption('--type <type>', 'Order type (market/limit)')
110
+ .requiredOption('--amount <amount>', 'Order amount')
111
+ .option('--price <price>', 'Order price (required for limit orders)')
112
+ .option('--json', 'Output in JSON format')
113
+ .action(async (options) => {
114
+ await (0, error_handler_1.executeCommand)(async () => {
115
+ const exchange = (0, validation_1.validateExchange)(options.exchange);
116
+ const symbol = (0, validation_1.validateSymbol)(options.symbol);
117
+ const side = (0, validation_1.validateOrderSide)(options.side);
118
+ const type = (0, validation_1.validateOrderType)(options.type);
119
+ const amount = (0, validation_1.validatePositiveNumber)(options.amount, 'Amount');
120
+ let price;
121
+ if (type === 'limit') {
122
+ if (!options.price) {
123
+ console.error(chalk_1.default.red('❌ Price is required for limit orders'));
124
+ process.exit(1);
125
+ }
126
+ price = (0, validation_1.validatePositiveNumber)(options.price, 'Price');
127
+ }
128
+ try {
129
+ const connector = await exchange_factory_1.ExchangeFactory.getExchange(exchange);
130
+ const order = await connector.createOrder(symbol, type, side, amount, price);
131
+ if (options.json) {
132
+ console.log(JSON.stringify(order, null, 2));
133
+ }
134
+ else {
135
+ (0, error_handler_1.showSuccess)(`Order created successfully!`);
136
+ console.log(` Order ID: ${chalk_1.default.bold(order.id)}`);
137
+ console.log(` Symbol: ${order.symbol}`);
138
+ console.log(` Side: ${chalk_1.default.bold(side.toUpperCase())}`);
139
+ console.log(` Type: ${type.toUpperCase()}`);
140
+ console.log(` Amount: ${amount.toFixed(8)}`);
141
+ if (price) {
142
+ console.log(` Price: ${price.toFixed(8)}`);
143
+ }
144
+ console.log(` Status: ${chalk_1.default.green(order.status.toUpperCase())}`);
145
+ }
146
+ }
147
+ catch (error) {
148
+ (0, error_handler_1.handleError)(error, 'Create Order');
149
+ }
150
+ }, 'create order');
151
+ });
152
+ exports.ordersCommand
153
+ .command('cancel')
154
+ .description('Cancel a specific order')
155
+ .requiredOption('-e, --exchange <exchange>', 'Exchange to use')
156
+ .requiredOption('-i, --id <orderId>', 'Order ID to cancel')
157
+ .requiredOption('-s, --symbol <symbol>', 'Trading pair symbol')
158
+ .option('--json', 'Output in JSON format')
159
+ .action(async (options) => {
160
+ await (0, error_handler_1.executeCommand)(async () => {
161
+ const exchange = (0, validation_1.validateExchange)(options.exchange);
162
+ const orderId = (0, validation_1.validateOrderId)(options.id);
163
+ const symbol = (0, validation_1.validateSymbol)(options.symbol);
164
+ try {
165
+ const connector = await exchange_factory_1.ExchangeFactory.getExchange(exchange);
166
+ await connector.cancelOrder(orderId, symbol);
167
+ if (options.json) {
168
+ console.log(JSON.stringify({
169
+ success: true,
170
+ orderId,
171
+ symbol,
172
+ message: 'Order cancelled successfully'
173
+ }, null, 2));
174
+ }
175
+ else {
176
+ (0, error_handler_1.showSuccess)(`Order cancelled successfully!`);
177
+ console.log(` Order ID: ${chalk_1.default.bold(orderId)}`);
178
+ console.log(` Symbol: ${symbol}`);
179
+ console.log(` Status: ${chalk_1.default.red('CANCELLED')}`);
180
+ }
181
+ }
182
+ catch (error) {
183
+ (0, error_handler_1.handleError)(error, 'Cancel Order');
184
+ }
185
+ }, 'cancel order');
186
+ });
187
+ exports.ordersCommand.addHelpText('after', `
188
+ Examples:
189
+ $ openmm orders list --exchange mexc # List all open orders
190
+ $ openmm orders list --exchange mexc --limit 5 # List only 5 orders
191
+ $ openmm orders list --exchange mexc --symbol BTC/USDT # List orders for BTC/USDT
192
+ $ openmm orders get --exchange mexc --id 12345 --symbol BTC/USDT # Get specific order
193
+ $ openmm orders create --exchange mexc --symbol BTC/USDT --side buy --type limit --amount 0.001 --price 50000
194
+ $ openmm orders cancel --exchange mexc --id 12345 --symbol BTC/USDT # Cancel specific order
195
+ `);
196
+ //# sourceMappingURL=orders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../src/cli/commands/orders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const poolDiscoveryCommand: Command;
3
+ //# sourceMappingURL=pool-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool-discovery.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/pool-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,oBAAoB,SA4D9B,CAAC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.poolDiscoveryCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const pool_discovery_core_1 = require("../pool-discovery-core");
6
+ const error_handler_1 = require("../utils/error-handler");
7
+ const price_aggregation_1 = require("../../config/price-aggregation");
8
+ exports.poolDiscoveryCommand = new commander_1.Command('pool-discovery')
9
+ .description('Discover Cardano liquidity pools for native tokens')
10
+ .addCommand(new commander_1.Command('discover')
11
+ .description('Discover pools for a supported token')
12
+ .argument('<token>', 'Token symbol (e.g., NIGHT, SNEK, INDY)')
13
+ .option('--limit <number>', 'Limit number of pools shown', '10')
14
+ .option('--min-liquidity <number>', 'Filter pools by minimum TVL')
15
+ .option('--show-all', 'Show all pools (ignore limit)')
16
+ .action(async (token, options) => {
17
+ await (0, error_handler_1.executeCommand)(async () => {
18
+ const cli = new pool_discovery_core_1.PoolDiscoveryCLI();
19
+ const discoverOptions = {
20
+ limit: parseInt(options.limit),
21
+ minLiquidity: options.minLiquidity ? parseInt(options.minLiquidity) : undefined,
22
+ showAll: options.showAll || false
23
+ };
24
+ const result = await cli.discoverTokenPools(token, discoverOptions);
25
+ cli.displayResults(result);
26
+ }, 'pool-discovery discover');
27
+ }))
28
+ .addCommand(new commander_1.Command('supported')
29
+ .description('List all supported tokens')
30
+ .action(async () => {
31
+ await (0, error_handler_1.executeCommand)(async () => {
32
+ console.log('🎯 Supported Tokens:');
33
+ console.log('─'.repeat(20));
34
+ (0, price_aggregation_1.getSupportedTokens)().forEach(token => {
35
+ console.log(`• ${token}`);
36
+ });
37
+ }, 'pool-discovery supported');
38
+ }))
39
+ .addCommand(new commander_1.Command('prices')
40
+ .description('Get live prices for token pools')
41
+ .argument('<token>', 'Token symbol')
42
+ .action(async (token) => {
43
+ await (0, error_handler_1.executeCommand)(async () => {
44
+ const cli = new pool_discovery_core_1.PoolDiscoveryCLI();
45
+ const result = await cli.discoverTokenPools(token, { limit: 3 });
46
+ await cli.getPoolPrices(result.recommendedIdentifiers, token);
47
+ }, 'pool-discovery prices');
48
+ }))
49
+ .addCommand(new commander_1.Command('custom')
50
+ .description('Generate configuration for custom token')
51
+ .argument('<policyId>', 'Cardano policy ID')
52
+ .argument('<assetNameHex>', 'Asset name in hex format')
53
+ .argument('<symbol>', 'Token symbol')
54
+ .action(async (policyId, assetNameHex, symbol) => {
55
+ await (0, error_handler_1.executeCommand)(async () => {
56
+ const cli = new pool_discovery_core_1.PoolDiscoveryCLI();
57
+ cli.suggestTokenConfig(policyId, assetNameHex, symbol);
58
+ }, 'pool-discovery custom');
59
+ }));
60
+ //# sourceMappingURL=pool-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool-discovery.js","sourceRoot":"","sources":["../../../src/cli/commands/pool-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const tickerCommand: Command;
3
+ //# sourceMappingURL=ticker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticker.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ticker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SAiCtB,CAAC"}