@3rd-eye-labs/openmm 0.0.1 → 0.1.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.
- package/README.md +6 -1
- package/dist/cli/cli.js +4 -5
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/balance.d.ts.map +1 -1
- package/dist/cli/commands/balance.js +1 -1
- package/dist/cli/commands/balance.js.map +1 -1
- package/dist/cli/commands/grid.d.ts +3 -0
- package/dist/cli/commands/grid.d.ts.map +1 -0
- package/dist/cli/commands/grid.js +103 -0
- package/dist/cli/commands/grid.js.map +1 -0
- package/dist/cli/commands/multi-trade.d.ts +3 -0
- package/dist/cli/commands/multi-trade.d.ts.map +1 -0
- package/dist/cli/commands/multi-trade.js +175 -0
- package/dist/cli/commands/multi-trade.js.map +1 -0
- package/dist/cli/commands/orderbook.js +1 -1
- package/dist/cli/commands/orderbook.js.map +1 -1
- package/dist/cli/commands/orders.d.ts.map +1 -1
- package/dist/cli/commands/orders.js +3 -4
- package/dist/cli/commands/orders.js.map +1 -1
- package/dist/cli/commands/pool-discovery.d.ts.map +1 -1
- package/dist/cli/commands/pool-discovery.js +15 -8
- package/dist/cli/commands/pool-discovery.js.map +1 -1
- package/dist/cli/commands/price-comparison.d.ts +3 -0
- package/dist/cli/commands/price-comparison.d.ts.map +1 -0
- package/dist/cli/commands/price-comparison.js +103 -0
- package/dist/cli/commands/price-comparison.js.map +1 -0
- package/dist/cli/commands/ticker.d.ts.map +1 -1
- package/dist/cli/commands/ticker.js.map +1 -1
- package/dist/cli/commands/trade.d.ts.map +1 -1
- package/dist/cli/commands/trade.js +135 -18
- package/dist/cli/commands/trade.js.map +1 -1
- package/dist/cli/commands/trades.d.ts.map +1 -1
- package/dist/cli/commands/trades.js +2 -3
- package/dist/cli/commands/trades.js.map +1 -1
- package/dist/cli/exchange-factory.d.ts.map +1 -1
- package/dist/cli/exchange-factory.js +6 -6
- package/dist/cli/exchange-factory.js.map +1 -1
- package/dist/cli/pool-discovery-core.d.ts +2 -1
- package/dist/cli/pool-discovery-core.d.ts.map +1 -1
- package/dist/cli/pool-discovery-core.js +69 -39
- package/dist/cli/pool-discovery-core.js.map +1 -1
- package/dist/cli/pool-discovery.d.ts +56 -0
- package/dist/cli/pool-discovery.d.ts.map +1 -0
- package/dist/cli/pool-discovery.js +283 -0
- package/dist/cli/pool-discovery.js.map +1 -0
- package/dist/cli/utils/error-handler.d.ts.map +1 -1
- package/dist/cli/utils/error-handler.js +6 -5
- package/dist/cli/utils/error-handler.js.map +1 -1
- package/dist/config/environment.d.ts.map +1 -1
- package/dist/config/environment.js +3 -1
- package/dist/config/environment.js.map +1 -1
- package/dist/config/launcher-config.d.ts +13 -0
- package/dist/config/launcher-config.d.ts.map +1 -1
- package/dist/config/launcher-config.js +3 -1
- package/dist/config/launcher-config.js.map +1 -1
- package/dist/config/price-aggregation.d.ts +1 -1
- package/dist/config/price-aggregation.d.ts.map +1 -1
- package/dist/config/price-aggregation.js +20 -20
- package/dist/config/price-aggregation.js.map +1 -1
- package/dist/core/exchange/base-exchange-connector.d.ts.map +1 -1
- package/dist/core/exchange/base-exchange-connector.js +1 -5
- package/dist/core/exchange/base-exchange-connector.js.map +1 -1
- package/dist/core/exchange/base-exchange-data-mapper.d.ts.map +1 -1
- package/dist/core/exchange/base-exchange-data-mapper.js +1 -1
- package/dist/core/exchange/base-exchange-data-mapper.js.map +1 -1
- package/dist/core/price-aggregation/cardano-price-service.d.ts +2 -2
- package/dist/core/price-aggregation/cardano-price-service.d.ts.map +1 -1
- package/dist/core/price-aggregation/cardano-price-service.js +13 -13
- package/dist/core/price-aggregation/cardano-price-service.js.map +1 -1
- package/dist/core/price-aggregation/index.d.ts +1 -1
- package/dist/core/price-aggregation/index.d.ts.map +1 -1
- package/dist/core/price-aggregation/iris-api-client.d.ts.map +1 -1
- package/dist/core/price-aggregation/iris-api-client.js +5 -5
- package/dist/core/price-aggregation/iris-api-client.js.map +1 -1
- package/dist/core/price-aggregation/iris-pool-discovery.d.ts +2 -2
- package/dist/core/price-aggregation/iris-pool-discovery.d.ts.map +1 -1
- package/dist/core/price-aggregation/iris-pool-discovery.js +3 -3
- package/dist/core/price-aggregation/iris-pool-discovery.js.map +1 -1
- package/dist/core/price-aggregation/multi-exchange-price-service.d.ts +38 -0
- package/dist/core/price-aggregation/multi-exchange-price-service.d.ts.map +1 -0
- package/dist/core/price-aggregation/multi-exchange-price-service.js +123 -0
- package/dist/core/price-aggregation/multi-exchange-price-service.js.map +1 -0
- package/dist/core/price-aggregation/price-cache.d.ts +55 -0
- package/dist/core/price-aggregation/price-cache.d.ts.map +1 -0
- package/dist/core/price-aggregation/price-cache.js +152 -0
- package/dist/core/price-aggregation/price-cache.js.map +1 -0
- package/dist/core/price-aggregation/price-calculator.d.ts.map +1 -1
- package/dist/core/price-aggregation/price-calculator.js +3 -3
- package/dist/core/price-aggregation/price-calculator.js.map +1 -1
- package/dist/core/risk-management/risk-manager.d.ts.map +1 -1
- package/dist/core/risk-management/risk-manager.js +2 -2
- package/dist/core/risk-management/risk-manager.js.map +1 -1
- package/dist/core/strategy/strategy-factory.d.ts +5 -0
- package/dist/core/strategy/strategy-factory.d.ts.map +1 -1
- package/dist/core/strategy/strategy-factory.js +127 -5
- package/dist/core/strategy/strategy-factory.js.map +1 -1
- package/dist/examples/mexc-connector-comprehensive-test.d.ts +15 -0
- package/dist/examples/mexc-connector-comprehensive-test.d.ts.map +1 -0
- package/dist/examples/mexc-connector-comprehensive-test.js +514 -0
- package/dist/examples/mexc-connector-comprehensive-test.js.map +1 -0
- package/dist/examples/mexc-order-update-test.d.ts +4 -0
- package/dist/examples/mexc-order-update-test.d.ts.map +1 -0
- package/dist/examples/mexc-order-update-test.js +186 -0
- package/dist/examples/mexc-order-update-test.js.map +1 -0
- package/dist/examples/mexc-test.d.ts +9 -0
- package/dist/examples/mexc-test.d.ts.map +1 -0
- package/dist/examples/mexc-test.js +218 -0
- package/dist/examples/mexc-test.js.map +1 -0
- package/dist/examples/mexc-trades-debug.d.ts +2 -0
- package/dist/examples/mexc-trades-debug.d.ts.map +1 -0
- package/dist/examples/mexc-trades-debug.js +101 -0
- package/dist/examples/mexc-trades-debug.js.map +1 -0
- package/dist/examples/mexc-trades-subscription-debug.d.ts +2 -0
- package/dist/examples/mexc-trades-subscription-debug.d.ts.map +1 -0
- package/dist/examples/mexc-trades-subscription-debug.js +150 -0
- package/dist/examples/mexc-trades-subscription-debug.js.map +1 -0
- package/dist/examples/mexc-websocket-test.d.ts +8 -0
- package/dist/examples/mexc-websocket-test.d.ts.map +1 -0
- package/dist/examples/mexc-websocket-test.js +115 -0
- package/dist/examples/mexc-websocket-test.js.map +1 -0
- package/dist/examples/test-protobuf-status-detection.d.ts +9 -0
- package/dist/examples/test-protobuf-status-detection.d.ts.map +1 -0
- package/dist/examples/test-protobuf-status-detection.js +83 -0
- package/dist/examples/test-protobuf-status-detection.js.map +1 -0
- package/dist/exchanges/base-exchange-connector.d.ts +33 -0
- package/dist/exchanges/base-exchange-connector.d.ts.map +1 -0
- package/dist/exchanges/base-exchange-connector.js +55 -0
- package/dist/exchanges/base-exchange-connector.js.map +1 -0
- package/dist/exchanges/bitget/bitget-auth.d.ts +66 -0
- package/dist/exchanges/bitget/bitget-auth.d.ts.map +1 -0
- package/dist/exchanges/bitget/bitget-auth.js +203 -0
- package/dist/exchanges/bitget/bitget-auth.js.map +1 -0
- package/dist/exchanges/bitget/bitget-connector.d.ts +255 -0
- package/dist/exchanges/bitget/bitget-connector.d.ts.map +1 -0
- package/dist/exchanges/bitget/bitget-connector.js +709 -0
- package/dist/exchanges/bitget/bitget-connector.js.map +1 -0
- package/dist/exchanges/bitget/bitget-data-mapper.d.ts +47 -0
- package/dist/exchanges/bitget/bitget-data-mapper.d.ts.map +1 -0
- package/dist/exchanges/bitget/bitget-data-mapper.js +147 -0
- package/dist/exchanges/bitget/bitget-data-mapper.js.map +1 -0
- package/dist/exchanges/bitget/bitget-user-stream.d.ts +126 -0
- package/dist/exchanges/bitget/bitget-user-stream.d.ts.map +1 -0
- package/dist/exchanges/bitget/bitget-user-stream.js +474 -0
- package/dist/exchanges/bitget/bitget-user-stream.js.map +1 -0
- package/dist/exchanges/bitget/bitget-utils.d.ts +17 -0
- package/dist/exchanges/bitget/bitget-utils.d.ts.map +1 -0
- package/dist/exchanges/bitget/bitget-utils.js +60 -0
- package/dist/exchanges/bitget/bitget-utils.js.map +1 -0
- package/dist/exchanges/bitget/bitget-websocket.d.ts +124 -0
- package/dist/exchanges/bitget/bitget-websocket.d.ts.map +1 -0
- package/dist/exchanges/bitget/bitget-websocket.js +434 -0
- package/dist/exchanges/bitget/bitget-websocket.js.map +1 -0
- package/dist/exchanges/gateio/gateio-auth.d.ts +69 -0
- package/dist/exchanges/gateio/gateio-auth.d.ts.map +1 -0
- package/dist/exchanges/gateio/gateio-auth.js +205 -0
- package/dist/exchanges/gateio/gateio-auth.js.map +1 -0
- package/dist/exchanges/gateio/gateio-connector.d.ts +182 -0
- package/dist/exchanges/gateio/gateio-connector.d.ts.map +1 -0
- package/dist/exchanges/gateio/gateio-connector.js +605 -0
- package/dist/exchanges/gateio/gateio-connector.js.map +1 -0
- package/dist/exchanges/gateio/gateio-data-mapper.d.ts +57 -0
- package/dist/exchanges/gateio/gateio-data-mapper.d.ts.map +1 -0
- package/dist/exchanges/gateio/gateio-data-mapper.js +184 -0
- package/dist/exchanges/gateio/gateio-data-mapper.js.map +1 -0
- package/dist/exchanges/gateio/gateio-user-stream.d.ts +120 -0
- package/dist/exchanges/gateio/gateio-user-stream.d.ts.map +1 -0
- package/dist/exchanges/gateio/gateio-user-stream.js +384 -0
- package/dist/exchanges/gateio/gateio-user-stream.js.map +1 -0
- package/dist/exchanges/gateio/gateio-utils.d.ts +45 -0
- package/dist/exchanges/gateio/gateio-utils.d.ts.map +1 -0
- package/dist/exchanges/gateio/gateio-utils.js +138 -0
- package/dist/exchanges/gateio/gateio-utils.js.map +1 -0
- package/dist/exchanges/gateio/gateio-websocket.d.ts +145 -0
- package/dist/exchanges/gateio/gateio-websocket.d.ts.map +1 -0
- package/dist/exchanges/gateio/gateio-websocket.js +469 -0
- package/dist/exchanges/gateio/gateio-websocket.js.map +1 -0
- package/dist/exchanges/kraken/kraken-auth.d.ts +12 -0
- package/dist/exchanges/kraken/kraken-auth.d.ts.map +1 -0
- package/dist/exchanges/kraken/kraken-auth.js +68 -0
- package/dist/exchanges/kraken/kraken-auth.js.map +1 -0
- package/dist/exchanges/kraken/kraken-connector.d.ts +38 -0
- package/dist/exchanges/kraken/kraken-connector.d.ts.map +1 -0
- package/dist/exchanges/kraken/kraken-connector.js +355 -0
- package/dist/exchanges/kraken/kraken-connector.js.map +1 -0
- package/dist/exchanges/kraken/kraken-data-mapper.d.ts +14 -0
- package/dist/exchanges/kraken/kraken-data-mapper.d.ts.map +1 -0
- package/dist/exchanges/kraken/kraken-data-mapper.js +169 -0
- package/dist/exchanges/kraken/kraken-data-mapper.js.map +1 -0
- package/dist/exchanges/kraken/kraken-utils.d.ts +52 -0
- package/dist/exchanges/kraken/kraken-utils.d.ts.map +1 -0
- package/dist/exchanges/kraken/kraken-utils.js +206 -0
- package/dist/exchanges/kraken/kraken-utils.js.map +1 -0
- package/dist/exchanges/kraken/kraken-websocket.d.ts +64 -0
- package/dist/exchanges/kraken/kraken-websocket.d.ts.map +1 -0
- package/dist/exchanges/kraken/kraken-websocket.js +667 -0
- package/dist/exchanges/kraken/kraken-websocket.js.map +1 -0
- package/dist/exchanges/kraken/test-kraken-websocket.d.ts +19 -0
- package/dist/exchanges/kraken/test-kraken-websocket.d.ts.map +1 -0
- package/dist/exchanges/kraken/test-kraken-websocket.js +413 -0
- package/dist/exchanges/kraken/test-kraken-websocket.js.map +1 -0
- package/dist/exchanges/mexc/mexc-auth.d.ts.map +1 -1
- package/dist/exchanges/mexc/mexc-auth.js +5 -5
- package/dist/exchanges/mexc/mexc-auth.js.map +1 -1
- package/dist/exchanges/mexc/mexc-connector.d.ts.map +1 -1
- package/dist/exchanges/mexc/mexc-connector.js +12 -13
- package/dist/exchanges/mexc/mexc-connector.js.map +1 -1
- package/dist/exchanges/mexc/mexc-data-mapper.d.ts.map +1 -1
- package/dist/exchanges/mexc/mexc-data-mapper.js +6 -6
- package/dist/exchanges/mexc/mexc-data-mapper.js.map +1 -1
- package/dist/exchanges/mexc/mexc-protobuf-decoder.d.ts.map +1 -1
- package/dist/exchanges/mexc/mexc-protobuf-decoder.js +14 -13
- package/dist/exchanges/mexc/mexc-protobuf-decoder.js.map +1 -1
- package/dist/exchanges/mexc/mexc-user-stream.d.ts.map +1 -1
- package/dist/exchanges/mexc/mexc-user-stream.js +5 -5
- package/dist/exchanges/mexc/mexc-user-stream.js.map +1 -1
- package/dist/exchanges/mexc/mexc-utils.d.ts +1 -5
- package/dist/exchanges/mexc/mexc-utils.d.ts.map +1 -1
- package/dist/exchanges/mexc/mexc-utils.js +33 -39
- package/dist/exchanges/mexc/mexc-utils.js.map +1 -1
- package/dist/exchanges/mexc/mexc-websocket.d.ts.map +1 -1
- package/dist/exchanges/mexc/mexc-websocket.js +45 -31
- package/dist/exchanges/mexc/mexc-websocket.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/resources/index.d.ts +3 -0
- package/dist/mcp/resources/index.d.ts.map +1 -0
- package/dist/mcp/resources/index.js +11 -0
- package/dist/mcp/resources/index.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +29 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +3 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +12 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/strategies/grid/grid-calculator.d.ts +63 -4
- package/dist/strategies/grid/grid-calculator.d.ts.map +1 -1
- package/dist/strategies/grid/grid-calculator.js +190 -15
- package/dist/strategies/grid/grid-calculator.js.map +1 -1
- package/dist/strategies/grid/grid-order-manager.d.ts +9 -4
- package/dist/strategies/grid/grid-order-manager.d.ts.map +1 -1
- package/dist/strategies/grid/grid-order-manager.js +58 -15
- package/dist/strategies/grid/grid-order-manager.js.map +1 -1
- package/dist/strategies/grid/grid-strategy.d.ts +11 -0
- package/dist/strategies/grid/grid-strategy.d.ts.map +1 -1
- package/dist/strategies/grid/grid-strategy.js +127 -20
- package/dist/strategies/grid/grid-strategy.js.map +1 -1
- package/dist/strategies/grid/volatility-tracker.d.ts +67 -0
- package/dist/strategies/grid/volatility-tracker.d.ts.map +1 -0
- package/dist/strategies/grid/volatility-tracker.js +109 -0
- package/dist/strategies/grid/volatility-tracker.js.map +1 -0
- package/dist/tests/fixtures/test-helpers.d.ts +5 -0
- package/dist/tests/fixtures/test-helpers.d.ts.map +1 -0
- package/dist/tests/fixtures/test-helpers.js +8 -0
- package/dist/tests/fixtures/test-helpers.js.map +1 -0
- package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts +2 -0
- package/dist/tests/integration/exchanges/mexc/mexc-integration.test.d.ts.map +1 -0
- package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js +237 -0
- package/dist/tests/integration/exchanges/mexc/mexc-integration.test.js.map +1 -0
- package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts +2 -0
- package/dist/tests/integration/price-aggregation/cardano-price-service.test.d.ts.map +1 -0
- package/dist/tests/integration/price-aggregation/cardano-price-service.test.js +57 -0
- package/dist/tests/integration/price-aggregation/cardano-price-service.test.js.map +1 -0
- package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts +2 -0
- package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.d.ts.map +1 -0
- package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js +141 -0
- package/dist/tests/integration/price-aggregation/price-aggregation-integration.test.js.map +1 -0
- package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts +2 -0
- package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.d.ts.map +1 -0
- package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js +375 -0
- package/dist/tests/integration/strategies/grid/grid-strategy-e2e.test.js.map +1 -0
- package/dist/tests/unit/cli/exchange-factory.test.d.ts +2 -0
- package/dist/tests/unit/cli/exchange-factory.test.d.ts.map +1 -0
- package/dist/tests/unit/cli/exchange-factory.test.js +148 -0
- package/dist/tests/unit/cli/exchange-factory.test.js.map +1 -0
- package/dist/tests/unit/config/environment.test.d.ts +2 -0
- package/dist/tests/unit/config/environment.test.d.ts.map +1 -0
- package/dist/tests/unit/config/environment.test.js +158 -0
- package/dist/tests/unit/config/environment.test.js.map +1 -0
- package/dist/tests/unit/config/launcher-config.test.d.ts +2 -0
- package/dist/tests/unit/config/launcher-config.test.d.ts.map +1 -0
- package/dist/tests/unit/config/launcher-config.test.js +117 -0
- package/dist/tests/unit/config/launcher-config.test.js.map +1 -0
- package/dist/tests/unit/config/price-aggregation.test.d.ts +2 -0
- package/dist/tests/unit/config/price-aggregation.test.d.ts.map +1 -0
- package/dist/tests/unit/config/price-aggregation.test.js +144 -0
- package/dist/tests/unit/config/price-aggregation.test.js.map +1 -0
- package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts +2 -0
- package/dist/tests/unit/core/exchange/base-exchange-connector.test.d.ts.map +1 -0
- package/dist/tests/unit/core/exchange/base-exchange-connector.test.js +191 -0
- package/dist/tests/unit/core/exchange/base-exchange-connector.test.js.map +1 -0
- package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts +2 -0
- package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.d.ts.map +1 -0
- package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js +324 -0
- package/dist/tests/unit/core/exchange/base-exchange-data-mapper.test.js.map +1 -0
- package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts +2 -0
- package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.d.ts.map +1 -0
- package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js +177 -0
- package/dist/tests/unit/core/price-aggregation/cardano-price-service.test.js.map +1 -0
- package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts +2 -0
- package/dist/tests/unit/core/price-aggregation/iris-api-client.test.d.ts.map +1 -0
- package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js +168 -0
- package/dist/tests/unit/core/price-aggregation/iris-api-client.test.js.map +1 -0
- package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts +2 -0
- package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.d.ts.map +1 -0
- package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js +217 -0
- package/dist/tests/unit/core/price-aggregation/iris-pool-discovery.test.js.map +1 -0
- package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts +2 -0
- package/dist/tests/unit/core/price-aggregation/price-calculator.test.d.ts.map +1 -0
- package/dist/tests/unit/core/price-aggregation/price-calculator.test.js +229 -0
- package/dist/tests/unit/core/price-aggregation/price-calculator.test.js.map +1 -0
- package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts +2 -0
- package/dist/tests/unit/core/risk-management/risk-manager.test.d.ts.map +1 -0
- package/dist/tests/unit/core/risk-management/risk-manager.test.js +194 -0
- package/dist/tests/unit/core/risk-management/risk-manager.test.js.map +1 -0
- package/dist/tests/unit/core/strategy/base-strategy.test.d.ts +2 -0
- package/dist/tests/unit/core/strategy/base-strategy.test.d.ts.map +1 -0
- package/dist/tests/unit/core/strategy/base-strategy.test.js +254 -0
- package/dist/tests/unit/core/strategy/base-strategy.test.js.map +1 -0
- package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts +2 -0
- package/dist/tests/unit/core/strategy/strategy-factory.test.d.ts.map +1 -0
- package/dist/tests/unit/core/strategy/strategy-factory.test.js +213 -0
- package/dist/tests/unit/core/strategy/strategy-factory.test.js.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts +2 -0
- package/dist/tests/unit/exchanges/mexc/mexc-auth.test.d.ts.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js +452 -0
- package/dist/tests/unit/exchanges/mexc/mexc-auth.test.js.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts +2 -0
- package/dist/tests/unit/exchanges/mexc/mexc-connector.test.d.ts.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js +1419 -0
- package/dist/tests/unit/exchanges/mexc/mexc-connector.test.js.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts +2 -0
- package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.d.ts.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js +435 -0
- package/dist/tests/unit/exchanges/mexc/mexc-data-mapper.test.js.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts +2 -0
- package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.d.ts.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js +314 -0
- package/dist/tests/unit/exchanges/mexc/mexc-protobuf-decoder.test.js.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts +2 -0
- package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.d.ts.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js +178 -0
- package/dist/tests/unit/exchanges/mexc/mexc-protobuf-status-detection.test.js.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts +2 -0
- package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.d.ts.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js +502 -0
- package/dist/tests/unit/exchanges/mexc/mexc-user-stream.test.js.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts +2 -0
- package/dist/tests/unit/exchanges/mexc/mexc-utils.test.d.ts.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js +317 -0
- package/dist/tests/unit/exchanges/mexc/mexc-utils.test.js.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts +2 -0
- package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.d.ts.map +1 -0
- package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js +843 -0
- package/dist/tests/unit/exchanges/mexc/mexc-websocket.test.js.map +1 -0
- package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts +2 -0
- package/dist/tests/unit/strategies/grid/grid-calculator.test.d.ts.map +1 -0
- package/dist/tests/unit/strategies/grid/grid-calculator.test.js +67 -0
- package/dist/tests/unit/strategies/grid/grid-calculator.test.js.map +1 -0
- package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts +2 -0
- package/dist/tests/unit/strategies/grid/grid-order-manager.test.d.ts.map +1 -0
- package/dist/tests/unit/strategies/grid/grid-order-manager.test.js +211 -0
- package/dist/tests/unit/strategies/grid/grid-order-manager.test.js.map +1 -0
- package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts +2 -0
- package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.d.ts.map +1 -0
- package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js +197 -0
- package/dist/tests/unit/strategies/grid/grid-strategy-simple.test.js.map +1 -0
- package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts +2 -0
- package/dist/tests/unit/strategies/grid/grid-strategy.test.d.ts.map +1 -0
- package/dist/tests/unit/strategies/grid/grid-strategy.test.js +429 -0
- package/dist/tests/unit/strategies/grid/grid-strategy.test.js.map +1 -0
- package/dist/tests/unit/utils/logger.test.d.ts +2 -0
- package/dist/tests/unit/utils/logger.test.d.ts.map +1 -0
- package/dist/tests/unit/utils/logger.test.js +260 -0
- package/dist/tests/unit/utils/logger.test.js.map +1 -0
- package/dist/tests/unit/utils/symbol-utils.test.d.ts +2 -0
- package/dist/tests/unit/utils/symbol-utils.test.d.ts.map +1 -0
- package/dist/tests/unit/utils/symbol-utils.test.js +178 -0
- package/dist/tests/unit/utils/symbol-utils.test.js.map +1 -0
- package/dist/types/bitget-raw.d.ts +75 -0
- package/dist/types/bitget-raw.d.ts.map +1 -0
- package/dist/types/bitget-raw.js +10 -0
- package/dist/types/bitget-raw.js.map +1 -0
- package/dist/types/bitget.d.ts +35 -0
- package/dist/types/bitget.d.ts.map +1 -0
- package/dist/types/bitget.js +8 -0
- package/dist/types/bitget.js.map +1 -0
- package/dist/types/gateio-raw.d.ts +104 -0
- package/dist/types/gateio-raw.d.ts.map +1 -0
- package/dist/types/gateio-raw.js +7 -0
- package/dist/types/gateio-raw.js.map +1 -0
- package/dist/types/gateio.d.ts +41 -0
- package/dist/types/gateio.d.ts.map +1 -0
- package/dist/types/gateio.js +8 -0
- package/dist/types/gateio.js.map +1 -0
- package/dist/types/grid.d.ts +77 -0
- package/dist/types/grid.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/kraken-raw.d.ts +89 -0
- package/dist/types/kraken-raw.d.ts.map +1 -0
- package/dist/types/kraken-raw.js +10 -0
- package/dist/types/kraken-raw.js.map +1 -0
- package/dist/types/kraken.d.ts +44 -0
- package/dist/types/kraken.d.ts.map +1 -0
- package/dist/types/kraken.js +3 -0
- package/dist/types/kraken.js.map +1 -0
- package/dist/types/mexc.d.ts +9 -0
- package/dist/types/mexc.d.ts.map +1 -1
- package/dist/types/price-aggregation.d.ts +31 -0
- package/dist/types/price-aggregation.d.ts.map +1 -0
- package/dist/types/price-aggregation.js +6 -0
- package/dist/types/price-aggregation.js.map +1 -0
- package/dist/types/price.d.ts +23 -0
- package/dist/types/price.d.ts.map +1 -1
- package/dist/types/strategy.d.ts +5 -0
- package/dist/types/strategy.d.ts.map +1 -1
- package/dist/utils/crypto.d.ts +15 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +50 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/exchange-utils.d.ts +194 -0
- package/dist/utils/exchange-utils.d.ts.map +1 -0
- package/dist/utils/exchange-utils.js +455 -0
- package/dist/utils/exchange-utils.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +7 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/validation.d.ts +36 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +174 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +7 -1
|
@@ -0,0 +1,103 @@
|
|
|
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.priceComparisonCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const multi_exchange_price_service_1 = require("../../core/price-aggregation/multi-exchange-price-service");
|
|
9
|
+
const price_aggregation_1 = require("../../core/price-aggregation");
|
|
10
|
+
const error_handler_1 = require("../utils/error-handler");
|
|
11
|
+
const price_aggregation_2 = require("../../config/price-aggregation");
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
exports.priceComparisonCommand = new commander_1.Command('price-comparison')
|
|
14
|
+
.description('Compare token prices across multiple exchanges and DEX')
|
|
15
|
+
.requiredOption('-s, --symbol <symbol>', 'Token symbol to compare (SNEK, INDY)')
|
|
16
|
+
.option('--exchanges-only', 'Only show CEX prices, skip DEX comparison')
|
|
17
|
+
.option('--json', 'Output in JSON format')
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
await (0, error_handler_1.executeCommand)(async () => {
|
|
20
|
+
const { symbol, exchangesOnly, json } = options;
|
|
21
|
+
const symbolUpper = symbol.toUpperCase();
|
|
22
|
+
const multiExchangeService = new multi_exchange_price_service_1.MultiExchangePriceService();
|
|
23
|
+
if (exchangesOnly) {
|
|
24
|
+
const aggregatedPrice = await multiExchangeService.getAggregatedPrice(`${symbolUpper}/USDT`);
|
|
25
|
+
if (json) {
|
|
26
|
+
console.log(JSON.stringify(aggregatedPrice, null, 2));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
displayCEXPrices(aggregatedPrice);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (!(0, price_aggregation_2.isTokenSupported)(symbolUpper)) {
|
|
33
|
+
console.log(chalk_1.default.yellow(`⚠️ ${symbolUpper} not supported for DEX pricing, showing CEX prices only\n`));
|
|
34
|
+
const aggregatedPrice = await multiExchangeService.getAggregatedPrice(`${symbolUpper}/USDT`);
|
|
35
|
+
if (json) {
|
|
36
|
+
console.log(JSON.stringify({ cexOnly: true, aggregatedPrice }, null, 2));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
displayCEXPrices(aggregatedPrice);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
console.log(chalk_1.default.blue(`\n📊 Fetching ${symbolUpper} prices from all sources...\n`));
|
|
43
|
+
const [dexPrice, cexAggregated] = await Promise.all([
|
|
44
|
+
new price_aggregation_1.CardanoPriceService().getTokenPrice(symbolUpper),
|
|
45
|
+
multiExchangeService.getAggregatedPrice(`${symbolUpper}/USDT`),
|
|
46
|
+
]);
|
|
47
|
+
if (json) {
|
|
48
|
+
const comparison = await multiExchangeService.compareDEXvsCEXPrices(`${symbolUpper}/USDT`, dexPrice.price);
|
|
49
|
+
console.log(JSON.stringify({ dexPrice, cexAggregated, comparison }, null, 2));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
displayDEXPrice(symbolUpper, dexPrice);
|
|
53
|
+
displayCEXPrices(cexAggregated);
|
|
54
|
+
const availableCexPrices = cexAggregated.prices.filter(p => p.available);
|
|
55
|
+
if (availableCexPrices.length > 0 && cexAggregated.averagePrice) {
|
|
56
|
+
displayDEXvsCEXComparison(dexPrice.price, cexAggregated.averagePrice);
|
|
57
|
+
}
|
|
58
|
+
}, 'price comparison');
|
|
59
|
+
});
|
|
60
|
+
function displayDEXPrice(symbol, dexPrice) {
|
|
61
|
+
console.log(chalk_1.default.blue(`🏊 ${symbol} DEX Price (Cardano Pools)`));
|
|
62
|
+
console.log(` Price: $${dexPrice.price.toFixed(8)}`);
|
|
63
|
+
console.log(` Confidence: ${(dexPrice.confidence * 100).toFixed(1)}%`);
|
|
64
|
+
console.log(` Sources: ${dexPrice.sources.length} DEX pools`);
|
|
65
|
+
console.log(` Updated: ${dexPrice.timestamp.toLocaleString()}\n`);
|
|
66
|
+
}
|
|
67
|
+
function displayCEXPrices(aggregated) {
|
|
68
|
+
console.log(chalk_1.default.green('🏪 CEX Prices'));
|
|
69
|
+
aggregated.prices.forEach((price) => {
|
|
70
|
+
if (price.available) {
|
|
71
|
+
console.log(chalk_1.default.green(` ✅ ${price.exchange.toUpperCase()}: $${price.price.toFixed(8)}`));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.log(chalk_1.default.gray(` ❌ ${price.exchange.toUpperCase()}: Not available`));
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
if (aggregated.averagePrice) {
|
|
78
|
+
console.log(chalk_1.default.cyan(` 📊 Average CEX Price: $${aggregated.averagePrice.toFixed(8)}`));
|
|
79
|
+
}
|
|
80
|
+
console.log('');
|
|
81
|
+
}
|
|
82
|
+
function displayDEXvsCEXComparison(dexPrice, avgCexPrice) {
|
|
83
|
+
const priceDiff = ((dexPrice - avgCexPrice) / avgCexPrice) * 100;
|
|
84
|
+
console.log(chalk_1.default.blue('🆚 DEX vs CEX Comparison'));
|
|
85
|
+
console.log(` DEX Price: $${dexPrice.toFixed(8)}`);
|
|
86
|
+
console.log(` CEX Avg Price: $${avgCexPrice.toFixed(8)}`);
|
|
87
|
+
if (priceDiff > 0) {
|
|
88
|
+
console.log(chalk_1.default.green(` DEX Premium: +${priceDiff.toFixed(2)}% (DEX higher)`));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
console.log(chalk_1.default.red(` DEX Discount: ${priceDiff.toFixed(2)}% (DEX lower)`));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.priceComparisonCommand.addHelpText('after', `
|
|
95
|
+
Examples:
|
|
96
|
+
$ openmm price-comparison --symbol SNEK # Compare SNEK prices across DEX and CEX
|
|
97
|
+
$ openmm price-comparison --symbol INDY --exchanges-only # Only CEX prices for INDY
|
|
98
|
+
$ openmm price-comparison --symbol SNEK --json # JSON output
|
|
99
|
+
|
|
100
|
+
Note: Compares prices from Cardano DEX pools and centralized exchanges
|
|
101
|
+
CEX prices are fetched from MEXC, Gate.io, and Bitget (where available)
|
|
102
|
+
`);
|
|
103
|
+
//# sourceMappingURL=price-comparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price-comparison.js","sourceRoot":"","sources":["../../../src/cli/commands/price-comparison.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
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,SAuCtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticker.js","sourceRoot":"","sources":["../../../src/cli/commands/ticker.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,0DAAsD;AACtD,oDAAuE;AACvE,0DAAqE;AAExD,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,oCAAoC,CAAC;KACjD,cAAc,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;KAChE,cAAc,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;KAC/E,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ticker.js","sourceRoot":"","sources":["../../../src/cli/commands/ticker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/trade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"trade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/trade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,YAAY,SAsLrB,CAAC"}
|
|
@@ -12,7 +12,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
12
12
|
exports.tradeCommand = new commander_1.Command('trade')
|
|
13
13
|
.description('Start trading with specified strategy and parameters')
|
|
14
14
|
.requiredOption('-s, --strategy <strategy>', 'Trading strategy to use (grid)')
|
|
15
|
-
.requiredOption('-e, --exchange <exchange>', 'Exchange to trade on (mexc)')
|
|
15
|
+
.requiredOption('-e, --exchange <exchange>', 'Exchange to trade on (mexc, bitget, gateio, kraken)')
|
|
16
16
|
.requiredOption('--symbol <symbol>', 'Trading pair (INDYUSDT, INDY/USDT, BTCUSDT, etc.)')
|
|
17
17
|
.option('--levels <number>', 'Grid: Number of levels each side (default: 5)', '5')
|
|
18
18
|
.option('--spacing <decimal>', 'Grid: Spacing between levels as decimal (0.02 = 2%)', '0.02')
|
|
@@ -22,6 +22,15 @@ exports.tradeCommand = new commander_1.Command('trade')
|
|
|
22
22
|
.option('--debounce <ms>', 'Grid: Adjustment debounce time in ms (default: 2000)', '2000')
|
|
23
23
|
.option('--max-position <decimal>', 'Grid: Maximum position size as % of balance (0.8 = 80%)', '0.8')
|
|
24
24
|
.option('--safety-reserve <decimal>', 'Grid: Safety reserve as % of balance (0.2 = 20%)', '0.2')
|
|
25
|
+
// Dynamic grid options
|
|
26
|
+
.option('--spacing-model <model>', 'Grid: Spacing model - linear, geometric, or custom (default: linear)', 'linear')
|
|
27
|
+
.option('--spacing-factor <number>', 'Grid: Geometric spacing multiplier per level (default: 1.3)')
|
|
28
|
+
.option('--size-model <model>', 'Grid: Size distribution - flat, pyramidal, or custom (default: flat)', 'flat')
|
|
29
|
+
.option('--grid-profile <path>', 'Grid: Load full grid configuration from a JSON profile file')
|
|
30
|
+
// Volatility options
|
|
31
|
+
.option('--volatility', 'Grid: Enable volatility-based dynamic spread adjustment')
|
|
32
|
+
.option('--volatility-low <decimal>', 'Grid: Low volatility threshold (default: 0.02 = 2%)')
|
|
33
|
+
.option('--volatility-high <decimal>', 'Grid: High volatility threshold (default: 0.05 = 5%)')
|
|
25
34
|
.option('--dry-run', 'Simulate trading without placing real orders')
|
|
26
35
|
.action(async (options) => {
|
|
27
36
|
let strategy = null;
|
|
@@ -54,24 +63,64 @@ exports.tradeCommand = new commander_1.Command('trade')
|
|
|
54
63
|
const config = {
|
|
55
64
|
strategy: strategyType,
|
|
56
65
|
exchange: options.exchange,
|
|
57
|
-
symbol: options.symbol
|
|
66
|
+
symbol: options.symbol,
|
|
58
67
|
};
|
|
59
68
|
let params = {};
|
|
60
69
|
if (strategyType === 'grid') {
|
|
61
|
-
|
|
70
|
+
const spacingModel = options.spacingModel;
|
|
71
|
+
const sizeModel = options.sizeModel;
|
|
72
|
+
if (!['linear', 'geometric', 'custom'].includes(spacingModel)) {
|
|
73
|
+
throw new Error(`Invalid spacing model: ${spacingModel}. Must be: linear, geometric, or custom`);
|
|
74
|
+
}
|
|
75
|
+
if (!['flat', 'pyramidal', 'custom'].includes(sizeModel)) {
|
|
76
|
+
throw new Error(`Invalid size model: ${sizeModel}. Must be: flat, pyramidal, or custom`);
|
|
77
|
+
}
|
|
78
|
+
// Validate levels (1-10 per side)
|
|
79
|
+
const levels = parseInt(options.levels);
|
|
80
|
+
if (levels < 1 || levels > 10) {
|
|
81
|
+
throw new Error(`Grid levels must be between 1 and 10, got ${levels}`);
|
|
82
|
+
}
|
|
83
|
+
console.log(chalk_1.default.gray(`Grid Levels: ${options.levels} per side (${levels * 2} total)`));
|
|
62
84
|
console.log(chalk_1.default.gray(`Grid Spacing: ${(parseFloat(options.spacing) * 100).toFixed(1)}%`));
|
|
85
|
+
console.log(chalk_1.default.gray(`Spacing Model: ${spacingModel}`));
|
|
86
|
+
if (spacingModel === 'geometric' && options.spacingFactor) {
|
|
87
|
+
console.log(chalk_1.default.gray(`Spacing Factor: ${options.spacingFactor}`));
|
|
88
|
+
}
|
|
89
|
+
console.log(chalk_1.default.gray(`Size Model: ${sizeModel}`));
|
|
63
90
|
console.log(chalk_1.default.gray(`Order Size: $${options.size}`));
|
|
64
91
|
console.log(chalk_1.default.gray(`Max Position: ${(parseFloat(options.maxPosition) * 100).toFixed(0)}%`));
|
|
65
92
|
console.log(chalk_1.default.gray(`Safety Reserve: ${(parseFloat(options.safetyReserve) * 100).toFixed(0)}%`));
|
|
93
|
+
if (options.gridProfile) {
|
|
94
|
+
console.log(chalk_1.default.gray(`Grid Profile: ${options.gridProfile}`));
|
|
95
|
+
}
|
|
96
|
+
if (options.volatility) {
|
|
97
|
+
const lowThreshold = options.volatilityLow ? parseFloat(options.volatilityLow) : 0.02;
|
|
98
|
+
const highThreshold = options.volatilityHigh
|
|
99
|
+
? parseFloat(options.volatilityHigh)
|
|
100
|
+
: 0.05;
|
|
101
|
+
console.log(chalk_1.default.gray(`Volatility Tracking: enabled`));
|
|
102
|
+
console.log(chalk_1.default.gray(`Volatility Thresholds: ${(lowThreshold * 100).toFixed(1)}% / ${(highThreshold * 100).toFixed(1)}%`));
|
|
103
|
+
}
|
|
66
104
|
params = {
|
|
67
|
-
gridLevels:
|
|
105
|
+
gridLevels: levels,
|
|
68
106
|
gridSpacing: parseFloat(options.spacing),
|
|
69
107
|
orderSize: parseFloat(options.size),
|
|
70
108
|
minConfidence: parseFloat(options.confidence),
|
|
71
109
|
priceDeviationThreshold: parseFloat(options.deviation),
|
|
72
110
|
adjustmentDebounce: parseInt(options.debounce),
|
|
73
111
|
maxPositionSize: parseFloat(options.maxPosition),
|
|
74
|
-
safetyReservePercentage: parseFloat(options.safetyReserve)
|
|
112
|
+
safetyReservePercentage: parseFloat(options.safetyReserve),
|
|
113
|
+
spacingModel,
|
|
114
|
+
sizeModel,
|
|
115
|
+
spacingFactor: options.spacingFactor ? parseFloat(options.spacingFactor) : undefined,
|
|
116
|
+
gridProfilePath: options.gridProfile,
|
|
117
|
+
volatilityEnabled: !!options.volatility,
|
|
118
|
+
volatilityLowThreshold: options.volatilityLow
|
|
119
|
+
? parseFloat(options.volatilityLow)
|
|
120
|
+
: undefined,
|
|
121
|
+
volatilityHighThreshold: options.volatilityHigh
|
|
122
|
+
? parseFloat(options.volatilityHigh)
|
|
123
|
+
: undefined,
|
|
75
124
|
};
|
|
76
125
|
}
|
|
77
126
|
console.log(chalk_1.default.blue('⚙️ Creating strategy...'));
|
|
@@ -90,21 +139,89 @@ exports.tradeCommand = new commander_1.Command('trade')
|
|
|
90
139
|
});
|
|
91
140
|
exports.tradeCommand.addHelpText('after', `
|
|
92
141
|
Examples:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
$ openmm trade --strategy grid --exchange
|
|
96
|
-
|
|
142
|
+
|
|
143
|
+
# 1. Linear spacing + Flat sizing (default behavior)
|
|
144
|
+
$ openmm trade --strategy grid --exchange kraken --symbol SNEK/EUR --levels 5 --spacing 0.02 --size 5
|
|
145
|
+
|
|
146
|
+
# 2. Geometric spacing + Flat sizing
|
|
147
|
+
$ openmm trade --strategy grid --exchange kraken --symbol SNEK/EUR --levels 10 --spacing 0.003 --spacing-model geometric --spacing-factor 1.3 --size 5
|
|
148
|
+
|
|
149
|
+
# 3. Geometric spacing + Pyramidal sizing
|
|
150
|
+
$ openmm trade --strategy grid --exchange kraken --symbol SNEK/EUR --levels 10 --spacing 0.005 --spacing-model geometric --spacing-factor 1.5 --size-model pyramidal --size 5
|
|
151
|
+
|
|
152
|
+
# 4. Linear spacing + Pyramidal sizing
|
|
153
|
+
$ openmm trade --strategy grid --exchange kraken --symbol SNEK/EUR --levels 8 --spacing 0.01 --size-model pyramidal --size 5
|
|
154
|
+
|
|
155
|
+
# 5. Geometric with aggressive factor (wider outer levels)
|
|
156
|
+
$ openmm trade --strategy grid --exchange kraken --symbol SNEK/EUR --levels 10 --spacing 0.002 --spacing-model geometric --spacing-factor 2.0 --size-model pyramidal --size 5
|
|
157
|
+
|
|
158
|
+
# 6. Load full configuration from a JSON profile file
|
|
159
|
+
$ openmm trade --strategy grid --exchange gateio --symbol SNEK/USDT --grid-profile ./profiles/aggressive.json
|
|
160
|
+
|
|
161
|
+
# 7. Volatility-based dynamic spread adjustment
|
|
162
|
+
$ openmm trade --strategy grid --exchange kraken --symbol SNEK/EUR --levels 5 --spacing 0.01 --size 5 --volatility
|
|
163
|
+
$ openmm trade --strategy grid --exchange kraken --symbol SNEK/EUR --levels 5 --spacing 0.01 --size 5 --volatility --volatility-low 0.01 --volatility-high 0.03
|
|
164
|
+
|
|
165
|
+
# 8. Multi-exchange examples
|
|
166
|
+
$ openmm trade --strategy grid --exchange mexc --symbol INDY/USDT --levels 10 --spacing 0.005 --spacing-model geometric --spacing-factor 1.3 --size-model pyramidal --size 5
|
|
167
|
+
$ openmm trade --strategy grid --exchange bitget --symbol SNEK/USDT --levels 7 --spacing 0.01 --size-model pyramidal --size 5
|
|
168
|
+
$ openmm trade --strategy grid --exchange gateio --symbol SNEK/USDT --levels 8 --spacing 0.004 --spacing-model geometric --spacing-factor 1.4 --size-model pyramidal --size 5
|
|
97
169
|
|
|
98
170
|
Grid Strategy Parameters:
|
|
99
|
-
--levels
|
|
100
|
-
--spacing
|
|
101
|
-
--size
|
|
102
|
-
--confidence
|
|
103
|
-
--deviation
|
|
104
|
-
--debounce
|
|
105
|
-
--max-position
|
|
106
|
-
--safety-reserve
|
|
171
|
+
--levels <number> Number of buy and sell orders each side (default: 5, max: 10)
|
|
172
|
+
--spacing <decimal> Base price spacing between grid levels (default: 0.02 = 2%)
|
|
173
|
+
--size <number> Base order size in quote currency like USDT (default: 50)
|
|
174
|
+
--confidence <decimal> Minimum price confidence to trade (default: 0.6 = 60%)
|
|
175
|
+
--deviation <decimal> Price movement % to trigger grid recreation (default: 0.015 = 1.5%)
|
|
176
|
+
--debounce <ms> Delay between grid adjustments in ms (default: 2000ms)
|
|
177
|
+
--max-position <decimal> Maximum position size as % of balance (default: 0.8 = 80%)
|
|
178
|
+
--safety-reserve <decimal> Safety reserve as % of balance (default: 0.2 = 20%)
|
|
179
|
+
|
|
180
|
+
Dynamic Grid Parameters:
|
|
181
|
+
--spacing-model <model> How spacing between levels is calculated (default: linear)
|
|
182
|
+
linear - Equal spacing between all levels
|
|
183
|
+
geometric - Spacing increases by factor per level (wider at edges)
|
|
184
|
+
custom - User-defined via grid profile file
|
|
185
|
+
--spacing-factor <number> Geometric spacing multiplier per level (default: 1.3)
|
|
186
|
+
Example: factor=1.5, base=0.5% → gaps: 0.5%, 0.75%, 1.125%...
|
|
187
|
+
--size-model <model> How order sizes are distributed across levels (default: flat)
|
|
188
|
+
flat - Equal size for all levels
|
|
189
|
+
pyramidal - Larger sizes near center, smaller at edges
|
|
190
|
+
custom - User-defined weights via grid profile file
|
|
191
|
+
--grid-profile <path> Load complete grid config from JSON file (overrides CLI params)
|
|
192
|
+
|
|
193
|
+
Volatility Parameters:
|
|
194
|
+
--volatility Enable volatility-based dynamic spread adjustment (off by default)
|
|
195
|
+
--volatility-low <decimal> Low volatility threshold (default: 0.02 = 2%)
|
|
196
|
+
Below this, grid spacing stays normal (multiplier 1.0)
|
|
197
|
+
--volatility-high <decimal> High volatility threshold (default: 0.05 = 5%)
|
|
198
|
+
Above this, grid spacing is widened maximally (multiplier 2.0)
|
|
199
|
+
|
|
200
|
+
Grid Profile File Format (JSON):
|
|
201
|
+
{
|
|
202
|
+
"name": "my-profile",
|
|
203
|
+
"levels": 10,
|
|
204
|
+
"spacingModel": "geometric",
|
|
205
|
+
"baseSpacing": 0.005,
|
|
206
|
+
"spacingFactor": 1.3,
|
|
207
|
+
"sizeModel": "pyramidal",
|
|
208
|
+
"baseSize": 50
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
For custom spacing/sizing, provide arrays:
|
|
212
|
+
{
|
|
213
|
+
"levels": 5,
|
|
214
|
+
"spacingModel": "custom",
|
|
215
|
+
"customSpacings": [0.005, 0.012, 0.022, 0.035, 0.055],
|
|
216
|
+
"sizeModel": "custom",
|
|
217
|
+
"sizeWeights": [1.5, 1.3, 1.0, 0.8, 0.6],
|
|
218
|
+
"baseSize": 50
|
|
219
|
+
}
|
|
107
220
|
|
|
108
|
-
Note: Ensure exchange-specific environment variables are set
|
|
221
|
+
Note: Ensure exchange-specific environment variables are set:
|
|
222
|
+
- MEXC: MEXC_API_KEY and MEXC_SECRET_KEY
|
|
223
|
+
- Bitget: BITGET_API_KEY, BITGET_SECRET, and BITGET_PASSPHRASE
|
|
224
|
+
- Gate.io: GATEIO_API_KEY and GATEIO_SECRET
|
|
225
|
+
- Kraken: KRAKEN_API_KEY and KRAKEN_SECRET
|
|
109
226
|
`);
|
|
110
227
|
//# sourceMappingURL=trade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../src/cli/commands/trade.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,0DAAsD;AACtD,0DAAqE;AACrE,2EAAuE;
|
|
1
|
+
{"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../src/cli/commands/trade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trades.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/trades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"trades.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/trades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SA0EtB,CAAC"}
|
|
@@ -41,8 +41,7 @@ exports.tradesCommand = new commander_1.Command('trades')
|
|
|
41
41
|
console.log(chalk_1.default.gray('─────────┼──────┼──────────────┼──────────────┼──────────────┼─────────────'));
|
|
42
42
|
limitedTrades.forEach(trade => {
|
|
43
43
|
const id = trade.id.padEnd(8);
|
|
44
|
-
const side = trade.side === 'buy' ?
|
|
45
|
-
chalk_1.default.green('BUY ') : chalk_1.default.red('SELL');
|
|
44
|
+
const side = trade.side === 'buy' ? chalk_1.default.green('BUY ') : chalk_1.default.red('SELL');
|
|
46
45
|
const price = `$${trade.price.toFixed(8)}`.padEnd(13);
|
|
47
46
|
const amount = trade.amount.toFixed(8).padEnd(13);
|
|
48
47
|
const total = `$${(trade.price * trade.amount).toFixed(8)}`.padEnd(13);
|
|
@@ -51,7 +50,7 @@ exports.tradesCommand = new commander_1.Command('trades')
|
|
|
51
50
|
});
|
|
52
51
|
const buyTrades = limitedTrades.filter(t => t.side === 'buy');
|
|
53
52
|
const sellTrades = limitedTrades.filter(t => t.side === 'sell');
|
|
54
|
-
const totalVolume = limitedTrades.reduce((sum, trade) => sum +
|
|
53
|
+
const totalVolume = limitedTrades.reduce((sum, trade) => sum + trade.price * trade.amount, 0);
|
|
55
54
|
console.log(`\n${chalk_1.default.bold('Summary')}:`);
|
|
56
55
|
console.log(` Total Trades: ${limitedTrades.length}`);
|
|
57
56
|
console.log(` Buy Trades: ${chalk_1.default.green(buyTrades.length)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trades.js","sourceRoot":"","sources":["../../../src/cli/commands/trades.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,0DAAsD;AACtD,oDAAuE;AACvE,0DAAqE;AAExD,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,sCAAsC,CAAC;KACnD,cAAc,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;KAChE,cAAc,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;KAC/E,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,EAAE,IAAI,CAAC;KAChF,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"trades.js","sourceRoot":"","sources":["../../../src/cli/commands/trades.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchange-factory.d.ts","sourceRoot":"","sources":["../../src/cli/exchange-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"exchange-factory.d.ts","sourceRoot":"","sources":["../../src/cli/exchange-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAMjF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExE;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,UAAU,CAA4D;IAErF;;;;OAIG;WACU,WAAW,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAazF;;;;OAIG;mBACkB,uBAAuB;IAqB5C;;;OAGG;IACH,MAAM,CAAC,qBAAqB,IAAI,iBAAiB,EAAE;IAInD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,IAAI,iBAAiB;IAI3E;;OAEG;WACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAW5C"}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExchangeFactory = void 0;
|
|
4
4
|
const mexc_connector_1 = require("../exchanges/mexc/mexc-connector");
|
|
5
|
+
const bitget_connector_1 = require("../exchanges/bitget/bitget-connector");
|
|
6
|
+
const gateio_connector_1 = require("../exchanges/gateio/gateio-connector");
|
|
7
|
+
const kraken_connector_1 = require("../exchanges/kraken/kraken-connector");
|
|
5
8
|
/**
|
|
6
9
|
* Exchange Factory
|
|
7
10
|
* Creates exchange connector instances dynamically based on exchange name
|
|
@@ -31,14 +34,11 @@ class ExchangeFactory {
|
|
|
31
34
|
case 'mexc':
|
|
32
35
|
return new mexc_connector_1.MexcConnector();
|
|
33
36
|
case 'gateio':
|
|
34
|
-
|
|
35
|
-
throw new Error('GateIO connector not yet implemented');
|
|
37
|
+
return new gateio_connector_1.GateioConnector();
|
|
36
38
|
case 'bitget':
|
|
37
|
-
|
|
38
|
-
throw new Error('Bitget connector not yet implemented');
|
|
39
|
+
return new bitget_connector_1.BitgetConnector();
|
|
39
40
|
case 'kraken':
|
|
40
|
-
|
|
41
|
-
throw new Error('Kraken connector not yet implemented');
|
|
41
|
+
return new kraken_connector_1.KrakenConnector();
|
|
42
42
|
default:
|
|
43
43
|
throw new Error(`Unsupported exchange: ${exchangeName}`);
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchange-factory.js","sourceRoot":"","sources":["../../src/cli/exchange-factory.ts"],"names":[],"mappings":";;;AACA,qEAAiE;
|
|
1
|
+
{"version":3,"file":"exchange-factory.js","sourceRoot":"","sources":["../../src/cli/exchange-factory.ts"],"names":[],"mappings":";;;AACA,qEAAiE;AACjE,2EAAuE;AACvE,2EAAuE;AACvE,2EAAuE;AAOvE;;;GAGG;AACH,MAAa,eAAe;IAG1B;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,YAA+B;QACtD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC;QAC5C,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;QAE1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAC1C,YAA+B;QAE/B,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,IAAI,8BAAa,EAAE,CAAC;YAE7B,KAAK,QAAQ;gBACX,OAAO,IAAI,kCAAe,EAAE,CAAC;YAE/B,KAAK,QAAQ;gBACX,OAAO,IAAI,kCAAe,EAAE,CAAC;YAE/B,KAAK,QAAQ;gBACX,OAAO,IAAI,kCAAe,EAAE,CAAC;YAE/B;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,qBAAqB;QAC1B,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,YAAoB;QACrC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,YAAiC,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa;QACxB,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC9E,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;;AA7EH,0CA8EC;AA7EgB,0BAAU,GAAkD,IAAI,GAAG,EAAE,CAAC"}
|
|
@@ -33,6 +33,7 @@ export declare class PoolDiscoveryCLI {
|
|
|
33
33
|
limit?: number;
|
|
34
34
|
minLiquidity?: number;
|
|
35
35
|
showAll?: boolean;
|
|
36
|
+
json?: boolean;
|
|
36
37
|
}): Promise<DiscoveryResult>;
|
|
37
38
|
/**
|
|
38
39
|
* Display discovery results in a formatted table
|
|
@@ -41,7 +42,7 @@ export declare class PoolDiscoveryCLI {
|
|
|
41
42
|
/**
|
|
42
43
|
* Get live price information for discovered pools
|
|
43
44
|
*/
|
|
44
|
-
getPoolPrices(identifiers: string[], tokenSymbol: string): Promise<void>;
|
|
45
|
+
getPoolPrices(identifiers: string[], tokenSymbol: string, json?: boolean): Promise<void>;
|
|
45
46
|
/**
|
|
46
47
|
* Format currency with K/M suffixes
|
|
47
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool-discovery-core.d.ts","sourceRoot":"","sources":["../../src/cli/pool-discovery-core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,YAAY,CAAsB;;IAQ1C;;OAEG;IACG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"pool-discovery-core.d.ts","sourceRoot":"","sources":["../../src/cli/pool-discovery-core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,YAAY,CAAsB;;IAQ1C;;OAEG;IACG,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;KACX,GACL,OAAO,CAAC,eAAe,CAAC;IA6D3B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IA2C7C;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2E5F;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB;CAsB/F"}
|