@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,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.testMexcOrderUpdates = testMexcOrderUpdates;
|
|
4
|
+
require("dotenv/config");
|
|
5
|
+
const mexc_connector_1 = require("../exchanges/mexc/mexc-connector");
|
|
6
|
+
async function testMexcOrderUpdates() {
|
|
7
|
+
const testCredentials = {
|
|
8
|
+
apiKey: process.env.MEXC_API_KEY || '',
|
|
9
|
+
secret: process.env.MEXC_SECRET || '',
|
|
10
|
+
uid: process.env.MEXC_UID
|
|
11
|
+
};
|
|
12
|
+
if (!testCredentials.apiKey || !testCredentials.secret) {
|
|
13
|
+
console.error('❌ MEXC API credentials not found. Please check your .env file.');
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const mexc = new mexc_connector_1.MexcConnector();
|
|
17
|
+
let orderUpdateCount = 0;
|
|
18
|
+
const receivedOrderUpdates = [];
|
|
19
|
+
try {
|
|
20
|
+
console.log('🔧 Setting up MEXC connector...');
|
|
21
|
+
mexc.setCredentials(testCredentials);
|
|
22
|
+
console.log('🔌 Connecting to MEXC REST API...');
|
|
23
|
+
await mexc.connect();
|
|
24
|
+
console.log('🔌 Connecting to MEXC WebSocket...');
|
|
25
|
+
await mexc.connectWebSocket();
|
|
26
|
+
console.log('🔌 Connecting to MEXC User Data Stream...');
|
|
27
|
+
await mexc.connectUserDataStream();
|
|
28
|
+
console.log('✅ All connections established successfully!');
|
|
29
|
+
console.log('📊 WebSocket Status:', mexc.getWebSocketStatus());
|
|
30
|
+
console.log('📊 User Data Stream Connected:', mexc.isUserDataStreamConnected());
|
|
31
|
+
console.log('');
|
|
32
|
+
// Subscribe to user order updates
|
|
33
|
+
console.log('👤 Subscribing to user order updates...');
|
|
34
|
+
const userOrdersId = await mexc.subscribeUserOrders((order) => {
|
|
35
|
+
orderUpdateCount++;
|
|
36
|
+
const timestamp = new Date(order.timestamp).toISOString();
|
|
37
|
+
console.log(`📋 Order Update #${orderUpdateCount} [${timestamp}]:`, {
|
|
38
|
+
orderId: order.id,
|
|
39
|
+
symbol: order.symbol,
|
|
40
|
+
type: order.type,
|
|
41
|
+
side: order.side,
|
|
42
|
+
amount: order.amount,
|
|
43
|
+
price: order.price,
|
|
44
|
+
filled: order.filled,
|
|
45
|
+
remaining: order.remaining,
|
|
46
|
+
status: order.status
|
|
47
|
+
});
|
|
48
|
+
receivedOrderUpdates.push({
|
|
49
|
+
updateNumber: orderUpdateCount,
|
|
50
|
+
timestamp: order.timestamp,
|
|
51
|
+
order: { ...order }
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
console.log('✅ User orders subscription ID:', userOrdersId);
|
|
55
|
+
console.log('');
|
|
56
|
+
// Get current balance and market data
|
|
57
|
+
console.log('💰 Getting current balances...');
|
|
58
|
+
const balance = await mexc.getBalance('USDT');
|
|
59
|
+
console.log('💰 USDT Balance:', balance);
|
|
60
|
+
console.log('📊 Getting current ticker...');
|
|
61
|
+
const ticker = await mexc.getTicker('INDY/USDT');
|
|
62
|
+
console.log('📊 Current INDY/USDT ticker:', {
|
|
63
|
+
last: ticker.last,
|
|
64
|
+
bid: ticker.bid,
|
|
65
|
+
ask: ticker.ask
|
|
66
|
+
});
|
|
67
|
+
console.log('');
|
|
68
|
+
// Test 1: Create a limit buy order well below market price (unlikely to fill)
|
|
69
|
+
console.log('🛒 Test 1: Creating limit buy order below market...');
|
|
70
|
+
const testBuyPrice = ticker.bid * 0.8; // 20% below current bid
|
|
71
|
+
const testAmount = 100; // 100 INDY
|
|
72
|
+
if (balance.available < testBuyPrice * testAmount) {
|
|
73
|
+
console.log('⚠️ Insufficient USDT balance for test order. Required:', testBuyPrice * testAmount, 'Available:', balance.available);
|
|
74
|
+
console.log('📝 Skipping order creation test...');
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log(`📝 Creating limit buy order: ${testAmount} INDY at $${testBuyPrice.toFixed(6)}`);
|
|
78
|
+
try {
|
|
79
|
+
const buyOrder = await mexc.createOrder('INDY/USDT', 'limit', 'buy', testAmount, testBuyPrice);
|
|
80
|
+
console.log('✅ Buy order created:', {
|
|
81
|
+
id: buyOrder.id,
|
|
82
|
+
symbol: buyOrder.symbol,
|
|
83
|
+
type: buyOrder.type,
|
|
84
|
+
side: buyOrder.side,
|
|
85
|
+
amount: buyOrder.amount,
|
|
86
|
+
price: buyOrder.price,
|
|
87
|
+
status: buyOrder.status
|
|
88
|
+
});
|
|
89
|
+
// Wait for order update via WebSocket
|
|
90
|
+
console.log('⏰ Waiting 10 seconds for order creation update...');
|
|
91
|
+
await new Promise(resolve => setTimeout(resolve, 10000));
|
|
92
|
+
// Cancel the order
|
|
93
|
+
console.log('❌ Cancelling the test order...');
|
|
94
|
+
await mexc.cancelOrder(buyOrder.id, 'INDY/USDT');
|
|
95
|
+
console.log('✅ Order cancellation request sent');
|
|
96
|
+
// Wait for cancellation update
|
|
97
|
+
console.log('⏰ Waiting 10 seconds for order cancellation update...');
|
|
98
|
+
await new Promise(resolve => setTimeout(resolve, 10000));
|
|
99
|
+
}
|
|
100
|
+
catch (orderError) {
|
|
101
|
+
console.log('⚠️ Order creation/cancellation failed:', orderError instanceof Error ? orderError.message : orderError);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
console.log('');
|
|
105
|
+
// Test 2: Create and immediately cancel a limit sell order above market price
|
|
106
|
+
console.log('💰 Test 2: Creating limit sell order above market...');
|
|
107
|
+
const testSellPrice = ticker.ask * 1.2; // 20% above current ask
|
|
108
|
+
const testSellAmount = 10; // 10 INDY
|
|
109
|
+
try {
|
|
110
|
+
// Check INDY balance first
|
|
111
|
+
const indyBalance = await mexc.getBalance('INDY');
|
|
112
|
+
console.log('💰 INDY Balance:', indyBalance);
|
|
113
|
+
if (indyBalance.available >= testSellAmount) {
|
|
114
|
+
console.log(`📝 Creating limit sell order: ${testSellAmount} INDY at $${testSellPrice.toFixed(6)}`);
|
|
115
|
+
const sellOrder = await mexc.createOrder('INDY/USDT', 'limit', 'sell', testSellAmount, testSellPrice);
|
|
116
|
+
console.log('✅ Sell order created:', {
|
|
117
|
+
id: sellOrder.id,
|
|
118
|
+
symbol: sellOrder.symbol,
|
|
119
|
+
type: sellOrder.type,
|
|
120
|
+
side: sellOrder.side,
|
|
121
|
+
amount: sellOrder.amount,
|
|
122
|
+
price: sellOrder.price,
|
|
123
|
+
status: sellOrder.status
|
|
124
|
+
});
|
|
125
|
+
// Wait for order update
|
|
126
|
+
console.log('⏰ Waiting 5 seconds for order creation update...');
|
|
127
|
+
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
128
|
+
// Cancel the order quickly
|
|
129
|
+
console.log('❌ Cancelling the test sell order...');
|
|
130
|
+
await mexc.cancelOrder(sellOrder.id, 'INDY/USDT');
|
|
131
|
+
console.log('✅ Sell order cancellation request sent');
|
|
132
|
+
// Wait for cancellation update
|
|
133
|
+
console.log('⏰ Waiting 10 seconds for final order updates...');
|
|
134
|
+
await new Promise(resolve => setTimeout(resolve, 10000));
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
console.log(`⚠️ Insufficient INDY balance for sell test. Required: ${testSellAmount}, Available: ${indyBalance.available}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch (sellError) {
|
|
141
|
+
console.log('⚠️ Sell order test failed:', sellError instanceof Error ? sellError.message : sellError);
|
|
142
|
+
}
|
|
143
|
+
console.log('');
|
|
144
|
+
console.log('📊 Test Summary:');
|
|
145
|
+
console.log(` - Total order updates received: ${orderUpdateCount}`);
|
|
146
|
+
console.log(` - User data stream connected: ${mexc.isUserDataStreamConnected()}`);
|
|
147
|
+
if (receivedOrderUpdates.length > 0) {
|
|
148
|
+
console.log('');
|
|
149
|
+
console.log('📋 All Received Order Updates:');
|
|
150
|
+
receivedOrderUpdates.forEach((update, index) => {
|
|
151
|
+
console.log(` ${index + 1}. [${new Date(update.timestamp).toISOString()}] Order ${update.order.id}: ${update.order.status}`);
|
|
152
|
+
});
|
|
153
|
+
console.log('✅ User data stream is working correctly!');
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
console.log('⚠️ No order updates received via WebSocket');
|
|
157
|
+
console.log('🔍 This could indicate:');
|
|
158
|
+
console.log(' 1. User data stream authentication issue');
|
|
159
|
+
console.log(' 2. WebSocket message parsing problem');
|
|
160
|
+
console.log(' 3. MEXC user data stream configuration issue');
|
|
161
|
+
console.log(' 4. Orders may have been processed too quickly');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
console.error('❌ Error during order update test:', error);
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
console.log('');
|
|
169
|
+
console.log('🧹 Cleaning up connections...');
|
|
170
|
+
try {
|
|
171
|
+
await mexc.disconnectUserDataStream();
|
|
172
|
+
console.log('✅ User data stream disconnected');
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
console.log('⚠️ Error disconnecting user data stream:', error);
|
|
176
|
+
}
|
|
177
|
+
await mexc.disconnect();
|
|
178
|
+
console.log('✅ Order update test completed!');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// Run the test
|
|
182
|
+
if (require.main === module) {
|
|
183
|
+
console.log('🚀 Starting MEXC Order Update Test with INDY Analytics approach...\n');
|
|
184
|
+
testMexcOrderUpdates().catch(console.error);
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=mexc-order-update-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-order-update-test.js","sourceRoot":"","sources":["../../src/examples/mexc-order-update-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
/**
|
|
3
|
+
* Comprehensive test script to verify ALL MEXC connector functionality
|
|
4
|
+
* Tests every method in the MexcConnector class including order creation/cancellation
|
|
5
|
+
* Based on the pattern from your existing INDY Analytics setup
|
|
6
|
+
*/
|
|
7
|
+
declare function testMexcConnector(): Promise<void>;
|
|
8
|
+
export { testMexcConnector };
|
|
9
|
+
//# sourceMappingURL=mexc-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-test.d.ts","sourceRoot":"","sources":["../../src/examples/mexc-test.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAKvB;;;;GAIG;AAEH,iBAAe,iBAAiB,kBA0N/B;AAYD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.testMexcConnector = testMexcConnector;
|
|
4
|
+
require("dotenv/config");
|
|
5
|
+
const mexc_connector_1 = require("../exchanges/mexc/mexc-connector");
|
|
6
|
+
const logger_1 = require("../utils/logger");
|
|
7
|
+
/**
|
|
8
|
+
* Comprehensive test script to verify ALL MEXC connector functionality
|
|
9
|
+
* Tests every method in the MexcConnector class including order creation/cancellation
|
|
10
|
+
* Based on the pattern from your existing INDY Analytics setup
|
|
11
|
+
*/
|
|
12
|
+
async function testMexcConnector() {
|
|
13
|
+
const logger = (0, logger_1.createLogger)({
|
|
14
|
+
level: 'info',
|
|
15
|
+
service: 'mexc-test'
|
|
16
|
+
});
|
|
17
|
+
// Test credentials loaded from .env
|
|
18
|
+
const testCredentials = {
|
|
19
|
+
apiKey: process.env.MEXC_API_KEY || '',
|
|
20
|
+
secret: process.env.MEXC_SECRET || '',
|
|
21
|
+
uid: process.env.MEXC_UID
|
|
22
|
+
};
|
|
23
|
+
// Validate credentials
|
|
24
|
+
if (!testCredentials.apiKey || !testCredentials.secret) {
|
|
25
|
+
logger.error('MEXC API credentials not found. Please check your .env file.');
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const mexc = new mexc_connector_1.MexcConnector();
|
|
29
|
+
let testOrderId = null;
|
|
30
|
+
try {
|
|
31
|
+
logger.info('Setting up MEXC connector', { exchangeId: 'mexc' });
|
|
32
|
+
mexc.setCredentials(testCredentials);
|
|
33
|
+
logger.info('Connecting to MEXC', { exchangeId: 'mexc' });
|
|
34
|
+
await mexc.connect();
|
|
35
|
+
if (!mexc.isConnected()) {
|
|
36
|
+
throw new Error('Failed to connect to MEXC');
|
|
37
|
+
}
|
|
38
|
+
logger.info('Connected to MEXC successfully', {
|
|
39
|
+
exchangeId: mexc.id,
|
|
40
|
+
exchangeName: mexc.name
|
|
41
|
+
});
|
|
42
|
+
// Test 1: Get Ticker
|
|
43
|
+
logger.info('Test 1: Getting ticker', { symbol: 'INDY/USDT', test: 'ticker' });
|
|
44
|
+
const ticker = await mexc.getTicker('INDY/USDT');
|
|
45
|
+
logger.info('Ticker retrieved successfully', {
|
|
46
|
+
symbol: 'INDY/USDT',
|
|
47
|
+
price: ticker.last,
|
|
48
|
+
bid: ticker.bid,
|
|
49
|
+
ask: ticker.ask
|
|
50
|
+
});
|
|
51
|
+
// Test 2: Get Account Balance
|
|
52
|
+
logger.info('Test 2: Getting account balance', { test: 'balance' });
|
|
53
|
+
const balances = await mexc.getBalance();
|
|
54
|
+
logger.info('Account balances retrieved', {
|
|
55
|
+
assetsCount: Object.keys(balances).length
|
|
56
|
+
});
|
|
57
|
+
Object.entries(balances).forEach(([asset, balance]) => {
|
|
58
|
+
logger.debug('Asset balance', {
|
|
59
|
+
asset,
|
|
60
|
+
free: balance.free,
|
|
61
|
+
used: balance.used,
|
|
62
|
+
total: balance.total
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
// Test 3: Get Order Book
|
|
66
|
+
logger.info('Test 3: Getting order book', { symbol: 'INDY/USDT', test: 'orderbook' });
|
|
67
|
+
const orderBook = await mexc.getOrderBook('INDY/USDT');
|
|
68
|
+
logger.info('Order book retrieved', {
|
|
69
|
+
symbol: 'INDY/USDT',
|
|
70
|
+
bidsCount: orderBook.bids.length,
|
|
71
|
+
asksCount: orderBook.asks.length,
|
|
72
|
+
bestBid: orderBook.bids[0]?.price,
|
|
73
|
+
bestAsk: orderBook.asks[0]?.price
|
|
74
|
+
});
|
|
75
|
+
// Test 4: Get Recent Trades
|
|
76
|
+
logger.info('Test 4: Getting recent trades', { symbol: 'INDY/USDT', test: 'trades' });
|
|
77
|
+
const recentTrades = await mexc.getRecentTrades('INDY/USDT');
|
|
78
|
+
logger.info('Recent trades retrieved', {
|
|
79
|
+
symbol: 'INDY/USDT',
|
|
80
|
+
tradesCount: recentTrades.length
|
|
81
|
+
});
|
|
82
|
+
if (recentTrades.length > 0) {
|
|
83
|
+
logger.debug('Latest trade details', {
|
|
84
|
+
symbol: 'INDY/USDT',
|
|
85
|
+
price: recentTrades[0].price,
|
|
86
|
+
amount: recentTrades[0].amount,
|
|
87
|
+
side: recentTrades[0].side
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// Test 5: Get Open Orders (before creating new ones)
|
|
91
|
+
logger.info('Test 5: Getting initial open orders', { symbol: 'INDY/USDT', test: 'openorders' });
|
|
92
|
+
const initialOpenOrders = await mexc.getOpenOrders('INDY/USDT');
|
|
93
|
+
logger.info('Initial open orders retrieved', {
|
|
94
|
+
symbol: 'INDY/USDT',
|
|
95
|
+
openOrdersCount: initialOpenOrders.length
|
|
96
|
+
});
|
|
97
|
+
// Test 6: Create a Limit Order (Buy order with low price to avoid accidental execution)
|
|
98
|
+
logger.info('Test 6: Creating limit buy order', { test: 'createorder' });
|
|
99
|
+
const lowBuyPrice = ticker.last * 0.5; // 50% below current price to avoid execution
|
|
100
|
+
const testAmount = 10; // Small amount for testing
|
|
101
|
+
logger.info('Creating test buy order', {
|
|
102
|
+
symbol: 'INDY/USDT',
|
|
103
|
+
amount: testAmount,
|
|
104
|
+
price: lowBuyPrice,
|
|
105
|
+
type: 'limit',
|
|
106
|
+
side: 'buy'
|
|
107
|
+
});
|
|
108
|
+
const createdOrder = await mexc.createOrder('INDY/USDT', 'limit', 'buy', testAmount, lowBuyPrice);
|
|
109
|
+
testOrderId = createdOrder.id;
|
|
110
|
+
logger.info('Order created successfully', {
|
|
111
|
+
orderId: testOrderId,
|
|
112
|
+
symbol: createdOrder.symbol,
|
|
113
|
+
type: createdOrder.type,
|
|
114
|
+
side: createdOrder.side,
|
|
115
|
+
amount: createdOrder.amount,
|
|
116
|
+
price: createdOrder.price,
|
|
117
|
+
status: createdOrder.status
|
|
118
|
+
});
|
|
119
|
+
// Test 7: Get Order Details
|
|
120
|
+
logger.info('Test 7: Getting order details', { orderId: testOrderId, test: 'getorder' });
|
|
121
|
+
const orderDetails = await mexc.getOrder(testOrderId, 'INDY/USDT');
|
|
122
|
+
logger.info('Order details retrieved', {
|
|
123
|
+
orderId: orderDetails.id,
|
|
124
|
+
status: orderDetails.status,
|
|
125
|
+
filled: orderDetails.filled,
|
|
126
|
+
remaining: orderDetails.remaining
|
|
127
|
+
});
|
|
128
|
+
// Test 8: Get Open Orders (after creating new one)
|
|
129
|
+
logger.info('Test 8: Getting open orders after creation', { test: 'openorders_after' });
|
|
130
|
+
const openOrdersAfterCreate = await mexc.getOpenOrders('INDY/USDT');
|
|
131
|
+
logger.info('Open orders after creation retrieved', {
|
|
132
|
+
openOrdersCount: openOrdersAfterCreate.length
|
|
133
|
+
});
|
|
134
|
+
// Find our test order
|
|
135
|
+
const ourOrder = openOrdersAfterCreate.find(order => order.id === testOrderId);
|
|
136
|
+
if (ourOrder) {
|
|
137
|
+
logger.info('Test order found in open orders list', { orderId: testOrderId });
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
logger.warn('Test order not found in open orders', {
|
|
141
|
+
orderId: testOrderId,
|
|
142
|
+
reason: 'might be filled or cancelled'
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
// Test 9: Cancel the Order
|
|
146
|
+
if (testOrderId) {
|
|
147
|
+
logger.info('Test 9: Cancelling test order', { orderId: testOrderId, test: 'cancelorder' });
|
|
148
|
+
await mexc.cancelOrder(testOrderId, 'INDY/USDT');
|
|
149
|
+
logger.info('Order cancelled successfully', { orderId: testOrderId });
|
|
150
|
+
// Test 10: Verify order was cancelled
|
|
151
|
+
logger.info('Test 10: Verifying order cancellation', { orderId: testOrderId, test: 'verify_cancel' });
|
|
152
|
+
const openOrdersAfterCancel = await mexc.getOpenOrders('INDY/USDT');
|
|
153
|
+
const cancelledOrderExists = openOrdersAfterCancel.find(order => order.id === testOrderId);
|
|
154
|
+
if (!cancelledOrderExists) {
|
|
155
|
+
logger.info('Order successfully removed from open orders list', { orderId: testOrderId });
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
logger.warn('Order still appears in open orders', {
|
|
159
|
+
orderId: testOrderId,
|
|
160
|
+
reason: 'might take time to update'
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Test 12: Test Market Order (commented out for safety)
|
|
165
|
+
logger.info('Test 12: Market order test (SKIPPED for safety)', { test: 'market_order_skip' });
|
|
166
|
+
logger.debug('Market order test skipped to avoid accidental execution');
|
|
167
|
+
// Uncomment below to test market orders (will execute immediately!)
|
|
168
|
+
// const marketOrder = await mexc.createOrder("INDY/USDT", "market", "buy", 10);
|
|
169
|
+
// logger.info('Market order created', marketOrder);
|
|
170
|
+
// await mexc.cancelOrder(marketOrder.id, 'INDY/USDT');
|
|
171
|
+
logger.info('ALL TESTS COMPLETED SUCCESSFULLY');
|
|
172
|
+
logger.info('Test Summary', {
|
|
173
|
+
connectionAuth: true,
|
|
174
|
+
tickerRetrieval: true,
|
|
175
|
+
balanceRetrieval: true,
|
|
176
|
+
orderBookData: true,
|
|
177
|
+
tradesData: true,
|
|
178
|
+
openOrdersListing: true,
|
|
179
|
+
limitOrderCreation: true,
|
|
180
|
+
orderDetailsRetrieval: true,
|
|
181
|
+
orderCancellation: true,
|
|
182
|
+
orderStatusVerification: true,
|
|
183
|
+
whitelistedUidAccess: !!testCredentials.uid
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
logger.logError(error instanceof Error ? error : new Error(String(error)), {
|
|
188
|
+
exchangeId: 'mexc',
|
|
189
|
+
testOrderId: testOrderId || 'none'
|
|
190
|
+
});
|
|
191
|
+
// Cleanup: Try to cancel test order if it was created
|
|
192
|
+
if (testOrderId) {
|
|
193
|
+
try {
|
|
194
|
+
logger.info('Attempting to cleanup test order', { orderId: testOrderId });
|
|
195
|
+
await mexc.cancelOrder(testOrderId, 'INDY/USDT');
|
|
196
|
+
logger.info('Test order cleaned up successfully', { orderId: testOrderId });
|
|
197
|
+
}
|
|
198
|
+
catch (cleanupError) {
|
|
199
|
+
logger.logError(cleanupError instanceof Error ? cleanupError : new Error(String(cleanupError)), { orderId: testOrderId, operation: 'cleanup' });
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
logger.info('Disconnecting from MEXC', { exchangeId: 'mexc' });
|
|
205
|
+
await mexc.disconnect();
|
|
206
|
+
logger.info('Test completed and disconnected', { exchangeId: 'mexc' });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Run the test if this file is executed directly
|
|
210
|
+
if (require.main === module) {
|
|
211
|
+
const mainLogger = (0, logger_1.createLogger)({ service: 'mexc-test-main' });
|
|
212
|
+
mainLogger.info('Starting comprehensive MEXC connector tests');
|
|
213
|
+
testMexcConnector().catch((error) => {
|
|
214
|
+
mainLogger.logError(error instanceof Error ? error : new Error(String(error)));
|
|
215
|
+
process.exit(1);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=mexc-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-test.js","sourceRoot":"","sources":["../../src/examples/mexc-test.ts"],"names":[],"mappings":";;AAiPS,8CAAiB;AAjP1B,yBAAuB;AACvB,qEAAiE;AAEjE,4CAA+C;AAE/C;;;;GAIG;AAEH,KAAK,UAAU,iBAAiB;IAC9B,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC;QAC1B,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,eAAe,GAAwB;QAC3C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;QACtC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QACrC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;KAC1B,CAAC;IAEF,uBAAuB;IACvB,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,8BAAa,EAAE,CAAC;IACjC,IAAI,WAAW,GAAkB,IAAI,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAErC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YAC5C,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,YAAY,EAAE,IAAI,CAAC,IAAI;SACxB,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YAC3C,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,MAAM,CAAC,GAAG;SAChB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACxC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;YACpD,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE;gBAC5B,KAAK;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAClC,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;YAChC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;YAChC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK;YACjC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK;SAClC,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACrC,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,YAAY,CAAC,MAAM;SACjC,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;gBACnC,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC5B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC9B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAChG,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YAC3C,MAAM,EAAE,WAAW;YACnB,eAAe,EAAE,iBAAiB,CAAC,MAAM;SAC1C,CAAC,CAAC;QAEH,wFAAwF;QACxF,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,6CAA6C;QACpF,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,2BAA2B;QAElD,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACrC,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAClG,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACxC,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACzF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACrC,OAAO,EAAE,YAAY,CAAC,EAAE;YACxB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;SAClC,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACxF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;YAClD,eAAe,EAAE,qBAAqB,CAAC,MAAM;SAC9C,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAC/E,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;gBACjD,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,8BAA8B;aACvC,CAAC,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;YAC5F,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAEtE,sCAAsC;YACtC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YACtG,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACpE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;YAE3F,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;oBAChD,OAAO,EAAE,WAAW;oBACpB,MAAM,EAAE,2BAA2B;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC9F,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACxE,oEAAoE;QACpE,gFAAgF;QAChF,oDAAoD;QACpD,uDAAuD;QAEvD,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YAC1B,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;YAChB,iBAAiB,EAAE,IAAI;YACvB,kBAAkB,EAAE,IAAI;YACxB,qBAAqB,EAAE,IAAI;YAC3B,iBAAiB,EAAE,IAAI;YACvB,uBAAuB,EAAE,IAAI;YAC7B,oBAAoB,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG;SAC5C,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YACzE,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,WAAW,IAAI,MAAM;SACnC,CAAC,CAAC;QAEH,sDAAsD;QACtD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC1E,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,QAAQ,CACb,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAC9E,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,CAC/C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,iDAAiD;AACjD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC/D,UAAU,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,UAAU,CAAC,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-trades-debug.d.ts","sourceRoot":"","sources":["../../src/examples/mexc-trades-debug.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,101 @@
|
|
|
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
|
+
const ws_1 = __importDefault(require("ws"));
|
|
7
|
+
const mexc_protobuf_decoder_1 = require("../exchanges/mexc/mexc-protobuf-decoder");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
/**
|
|
10
|
+
* Debug trades subscription specifically
|
|
11
|
+
*/
|
|
12
|
+
async function debugTradesSubscription() {
|
|
13
|
+
const logger = (0, utils_1.createLogger)('mexc-trades-debug');
|
|
14
|
+
try {
|
|
15
|
+
logger.info('=== MEXC Trades Subscription Debug ===');
|
|
16
|
+
const ws = new ws_1.default('wss://wbs-api.mexc.com/ws');
|
|
17
|
+
ws.on('open', () => {
|
|
18
|
+
logger.info('✅ WebSocket connected');
|
|
19
|
+
// Subscribe to INDYUSDT trades
|
|
20
|
+
const tradesSubscription = {
|
|
21
|
+
method: 'SUBSCRIPTION',
|
|
22
|
+
params: ['spot@public.aggre.deals.v3.api.pb@100ms@INDYUSDT']
|
|
23
|
+
};
|
|
24
|
+
logger.info('📤 Subscribing to trades:', tradesSubscription);
|
|
25
|
+
ws.send(JSON.stringify(tradesSubscription));
|
|
26
|
+
});
|
|
27
|
+
let messageCount = 0;
|
|
28
|
+
ws.on('message', (data) => {
|
|
29
|
+
messageCount++;
|
|
30
|
+
const messageStr = data.toString();
|
|
31
|
+
logger.info(`📥 Message #${messageCount} received (${data.length} bytes)`);
|
|
32
|
+
// Try to parse as JSON first
|
|
33
|
+
try {
|
|
34
|
+
const jsonData = JSON.parse(messageStr);
|
|
35
|
+
if (jsonData.id !== undefined) {
|
|
36
|
+
if (jsonData.code === 0) {
|
|
37
|
+
logger.info(' ✅ Subscription confirmed:', jsonData.msg);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
logger.error(' ❌ Subscription failed:', jsonData);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (jsonError) {
|
|
45
|
+
// Check if it's a trade protobuf message
|
|
46
|
+
if (messageStr.includes('spot@public.aggre.deals.v3.api.p')) {
|
|
47
|
+
logger.info(' 📦 Trade protobuf message detected!');
|
|
48
|
+
logger.info(` Raw preview: ${messageStr.substring(0, 100)}...`);
|
|
49
|
+
try {
|
|
50
|
+
const decoded = mexc_protobuf_decoder_1.MexcProtobufDecoder.decode(messageStr);
|
|
51
|
+
logger.info(' 🔓 Decode result:', {
|
|
52
|
+
type: decoded.type,
|
|
53
|
+
symbol: decoded.symbol,
|
|
54
|
+
hasDecoded: !!decoded.decoded,
|
|
55
|
+
error: decoded.error
|
|
56
|
+
});
|
|
57
|
+
if (decoded.decoded) {
|
|
58
|
+
logger.info(' 📊 Decoded trade data:', decoded.decoded);
|
|
59
|
+
// Check if dealsList format is correct
|
|
60
|
+
if (decoded.decoded.dealsList && Array.isArray(decoded.decoded.dealsList)) {
|
|
61
|
+
logger.info(` ✅ Found ${decoded.decoded.dealsList.length} deals`);
|
|
62
|
+
decoded.decoded.dealsList.forEach((deal, index) => {
|
|
63
|
+
logger.info(` Deal ${index + 1}:`, {
|
|
64
|
+
price: deal.price,
|
|
65
|
+
quantity: deal.quantity,
|
|
66
|
+
time: deal.time,
|
|
67
|
+
tradetype: deal.tradetype
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
logger.warn(' ❌ No valid dealsList found');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (decodingError) {
|
|
77
|
+
logger.error(' ❌ Protobuf decoding failed:', decodingError);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
logger.info(''); // Empty line for readability
|
|
82
|
+
});
|
|
83
|
+
ws.on('error', (error) => {
|
|
84
|
+
logger.error('❌ WebSocket error:', error);
|
|
85
|
+
});
|
|
86
|
+
ws.on('close', () => {
|
|
87
|
+
logger.info('🔌 WebSocket connection closed');
|
|
88
|
+
});
|
|
89
|
+
// Keep connection alive for 30 seconds
|
|
90
|
+
logger.info('⏰ Listening for trades for 30 seconds...');
|
|
91
|
+
await new Promise(resolve => setTimeout(resolve, 30000));
|
|
92
|
+
logger.info(`\\n=== TRADES DEBUG SUMMARY ===`);
|
|
93
|
+
logger.info(`Total messages received: ${messageCount}`);
|
|
94
|
+
ws.close();
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
logger.error('❌ Debug test failed:', error);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
debugTradesSubscription().catch(console.error);
|
|
101
|
+
//# sourceMappingURL=mexc-trades-debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-trades-debug.js","sourceRoot":"","sources":["../../src/examples/mexc-trades-debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-trades-subscription-debug.d.ts","sourceRoot":"","sources":["../../src/examples/mexc-trades-subscription-debug.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
|