@3rd-eye-labs/openmm 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2 -4
- 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.map +1 -1
- package/dist/cli/pool-discovery-core.js +3 -9
- 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,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("dotenv/config");
|
|
4
|
+
const mexc_connector_1 = require("../exchanges/mexc/mexc-connector");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
/**
|
|
7
|
+
* Debug trades subscription specifically to identify where it fails
|
|
8
|
+
*/
|
|
9
|
+
async function debugTradesSubscription() {
|
|
10
|
+
const logger = (0, utils_1.createLogger)('trades-subscription-debug');
|
|
11
|
+
try {
|
|
12
|
+
logger.info('=== MEXC Trades Subscription Debug Test ===');
|
|
13
|
+
// Initialize connector
|
|
14
|
+
const mexc = new mexc_connector_1.MexcConnector();
|
|
15
|
+
mexc.setCredentials({
|
|
16
|
+
apiKey: process.env.MEXC_API_KEY,
|
|
17
|
+
secret: process.env.MEXC_SECRET
|
|
18
|
+
});
|
|
19
|
+
// Step 1: Connect to WebSocket
|
|
20
|
+
logger.info('Step 1: Connecting to WebSocket...');
|
|
21
|
+
await mexc.connectWebSocket();
|
|
22
|
+
logger.info('✅ WebSocket connected');
|
|
23
|
+
// Step 2: Set up detailed callback tracking
|
|
24
|
+
let tradesReceived = 0;
|
|
25
|
+
let firstTradeTime = null;
|
|
26
|
+
let lastTradeTime = null;
|
|
27
|
+
const tradeCallback = (trade) => {
|
|
28
|
+
tradesReceived++;
|
|
29
|
+
const now = Date.now();
|
|
30
|
+
if (!firstTradeTime) {
|
|
31
|
+
firstTradeTime = now;
|
|
32
|
+
logger.info(`🎯 FIRST TRADE RECEIVED after ${now - subscriptionTime}ms`);
|
|
33
|
+
}
|
|
34
|
+
lastTradeTime = now;
|
|
35
|
+
logger.info(`📊 Trade #${tradesReceived}:`, {
|
|
36
|
+
id: trade.id,
|
|
37
|
+
symbol: trade.symbol,
|
|
38
|
+
side: trade.side,
|
|
39
|
+
amount: trade.amount,
|
|
40
|
+
price: trade.price,
|
|
41
|
+
timestamp: trade.timestamp
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
// Step 3: Subscribe to trades with detailed logging
|
|
45
|
+
logger.info('Step 3: Subscribing to INDY/USDT trades...');
|
|
46
|
+
const subscriptionTime = Date.now();
|
|
47
|
+
const subscriptionId = await mexc.subscribeTrades('INDY/USDT', tradeCallback);
|
|
48
|
+
logger.info(`✅ Trades subscription created: ${subscriptionId}`);
|
|
49
|
+
// Step 4: Monitor for extended period with periodic status updates
|
|
50
|
+
const monitoringDuration = 60000; // 60 seconds
|
|
51
|
+
const statusInterval = 5000; // Log status every 5 seconds
|
|
52
|
+
logger.info(`⏰ Monitoring trades for ${monitoringDuration / 1000} seconds...`);
|
|
53
|
+
let statusTimer;
|
|
54
|
+
let statusCount = 0;
|
|
55
|
+
const monitoringPromise = new Promise((resolve) => {
|
|
56
|
+
statusTimer = setInterval(() => {
|
|
57
|
+
statusCount++;
|
|
58
|
+
const elapsed = statusCount * statusInterval;
|
|
59
|
+
logger.info(`📈 Status Update #${statusCount} (${elapsed / 1000}s elapsed):`, {
|
|
60
|
+
tradesReceived,
|
|
61
|
+
wsStatus: mexc.getWebSocketStatus(),
|
|
62
|
+
wsConnected: mexc.isWebSocketConnected(),
|
|
63
|
+
firstTradeDelay: firstTradeTime ? `${firstTradeTime - subscriptionTime}ms` : 'none',
|
|
64
|
+
lastTradeDelta: lastTradeTime ? `${Date.now() - lastTradeTime}ms ago` : 'none'
|
|
65
|
+
});
|
|
66
|
+
if (elapsed >= monitoringDuration) {
|
|
67
|
+
clearInterval(statusTimer);
|
|
68
|
+
resolve();
|
|
69
|
+
}
|
|
70
|
+
}, statusInterval);
|
|
71
|
+
});
|
|
72
|
+
await monitoringPromise;
|
|
73
|
+
// Step 5: Final analysis
|
|
74
|
+
logger.info('\n=== TRADES SUBSCRIPTION ANALYSIS ===');
|
|
75
|
+
logger.info(`Total monitoring time: ${monitoringDuration / 1000} seconds`);
|
|
76
|
+
logger.info(`Total trades received: ${tradesReceived}`);
|
|
77
|
+
if (tradesReceived === 0) {
|
|
78
|
+
logger.error('❌ NO TRADES RECEIVED - Possible issues:');
|
|
79
|
+
logger.error(' 1. WebSocket subscription not working');
|
|
80
|
+
logger.error(' 2. Protobuf decoding failing');
|
|
81
|
+
logger.error(' 3. Message routing not reaching callback');
|
|
82
|
+
logger.error(' 4. No actual trades happening on INDYUSDT');
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
logger.info('✅ TRADES RECEIVED SUCCESSFULLY');
|
|
86
|
+
logger.info(` First trade delay: ${firstTradeTime - subscriptionTime}ms`);
|
|
87
|
+
logger.info(` Average trade frequency: ${tradesReceived / (monitoringDuration / 1000)} trades/sec`);
|
|
88
|
+
if (tradesReceived < 3) {
|
|
89
|
+
logger.warn('⚠️ Low trade frequency - this might explain comprehensive test timeouts');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Step 6: Test direct WebSocket channel
|
|
93
|
+
logger.info('\n=== DIRECT WEBSOCKET TEST ===');
|
|
94
|
+
logger.info('Testing if we can receive raw trade messages...');
|
|
95
|
+
// Import WebSocket for direct testing
|
|
96
|
+
const WebSocket = require('ws');
|
|
97
|
+
const ws = new WebSocket('wss://wbs-api.mexc.com/ws');
|
|
98
|
+
let rawTradeMessages = 0;
|
|
99
|
+
const directTestPromise = new Promise((resolve) => {
|
|
100
|
+
ws.on('open', () => {
|
|
101
|
+
logger.info('✅ Direct WebSocket connected');
|
|
102
|
+
ws.send(JSON.stringify({
|
|
103
|
+
method: 'SUBSCRIPTION',
|
|
104
|
+
params: ['spot@public.aggre.deals.v3.api.pb@100ms@INDYUSDT']
|
|
105
|
+
}));
|
|
106
|
+
});
|
|
107
|
+
ws.on('message', (data) => {
|
|
108
|
+
const message = data.toString();
|
|
109
|
+
if (message.includes('spot@public.aggre.deals.v3.api.p')) {
|
|
110
|
+
rawTradeMessages++;
|
|
111
|
+
if (rawTradeMessages <= 3) {
|
|
112
|
+
logger.info(`🔍 Raw trade message #${rawTradeMessages} detected:`, {
|
|
113
|
+
length: message.length,
|
|
114
|
+
preview: message.substring(0, 100)
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
setTimeout(() => {
|
|
120
|
+
ws.close();
|
|
121
|
+
resolve();
|
|
122
|
+
}, 15000); // 15 second test
|
|
123
|
+
});
|
|
124
|
+
await directTestPromise;
|
|
125
|
+
logger.info(`Direct test result: ${rawTradeMessages} raw trade messages in 15 seconds`);
|
|
126
|
+
if (rawTradeMessages > 0 && tradesReceived === 0) {
|
|
127
|
+
logger.error('❌ ISSUE IDENTIFIED: Raw messages received but not processed by connector');
|
|
128
|
+
logger.error(' Problem is in protobuf decoding or message routing');
|
|
129
|
+
}
|
|
130
|
+
else if (rawTradeMessages === 0) {
|
|
131
|
+
logger.warn('⚠️ No raw trade messages - INDYUSDT might have low trading activity');
|
|
132
|
+
}
|
|
133
|
+
// Cleanup
|
|
134
|
+
logger.info('\n=== CLEANUP ===');
|
|
135
|
+
await mexc.unsubscribe(subscriptionId);
|
|
136
|
+
await mexc.disconnectWebSocket();
|
|
137
|
+
await mexc.disconnect();
|
|
138
|
+
logger.info('✅ Cleanup completed');
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
if (error instanceof Error) {
|
|
142
|
+
logger.logError(error);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
logger.error('❌ Debug test failed', { error: String(error) });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
debugTradesSubscription().catch(console.error);
|
|
150
|
+
//# sourceMappingURL=mexc-trades-subscription-debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-trades-subscription-debug.js","sourceRoot":"","sources":["../../src/examples/mexc-trades-subscription-debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-websocket-test.d.ts","sourceRoot":"","sources":["../../src/examples/mexc-websocket-test.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAIvB;;;GAGG;AAEH,iBAAe,iBAAiB,kBA6G/B;AAWD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.testMexcWebSocket = testMexcWebSocket;
|
|
4
|
+
require("dotenv/config");
|
|
5
|
+
const mexc_connector_1 = require("../exchanges/mexc/mexc-connector");
|
|
6
|
+
/**
|
|
7
|
+
* MEXC WebSocket test script
|
|
8
|
+
* Demonstrates real-time data subscriptions
|
|
9
|
+
*/
|
|
10
|
+
async function testMexcWebSocket() {
|
|
11
|
+
// Test credentials loaded from .env
|
|
12
|
+
const testCredentials = {
|
|
13
|
+
apiKey: process.env.MEXC_API_KEY || '',
|
|
14
|
+
secret: process.env.MEXC_SECRET || '',
|
|
15
|
+
uid: process.env.MEXC_UID
|
|
16
|
+
};
|
|
17
|
+
// Validate credentials
|
|
18
|
+
if (!testCredentials.apiKey || !testCredentials.secret) {
|
|
19
|
+
console.error('❌ MEXC API credentials not found. Please check your .env file.');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const mexc = new mexc_connector_1.MexcConnector();
|
|
23
|
+
let tickerSubscriptionId;
|
|
24
|
+
let tradesSubscriptionId;
|
|
25
|
+
try {
|
|
26
|
+
console.log('🔧 Setting up MEXC connector...');
|
|
27
|
+
mexc.setCredentials(testCredentials);
|
|
28
|
+
console.log('🔌 Connecting to MEXC REST API...');
|
|
29
|
+
await mexc.connect();
|
|
30
|
+
if (!mexc.isConnected()) {
|
|
31
|
+
throw new Error('Failed to connect to MEXC REST API');
|
|
32
|
+
}
|
|
33
|
+
console.log('✅ Connected to MEXC REST API successfully!');
|
|
34
|
+
// Connect to WebSocket
|
|
35
|
+
console.log('🔌 Connecting to MEXC WebSocket...');
|
|
36
|
+
await mexc.connectWebSocket();
|
|
37
|
+
if (!mexc.isWebSocketConnected()) {
|
|
38
|
+
throw new Error('Failed to connect to MEXC WebSocket');
|
|
39
|
+
}
|
|
40
|
+
console.log('✅ Connected to MEXC WebSocket successfully!');
|
|
41
|
+
console.log('📊 WebSocket Status:', mexc.getWebSocketStatus());
|
|
42
|
+
console.log('');
|
|
43
|
+
// Subscribe to ticker updates
|
|
44
|
+
console.log('📊 Subscribing to INDY/USDT ticker updates...');
|
|
45
|
+
tickerSubscriptionId = await mexc.subscribeTicker('INDY/USDT', (ticker) => {
|
|
46
|
+
console.log('🎯 Ticker Update:', {
|
|
47
|
+
symbol: ticker.symbol,
|
|
48
|
+
price: ticker.last,
|
|
49
|
+
bid: ticker.bid,
|
|
50
|
+
ask: ticker.ask,
|
|
51
|
+
time: new Date().toISOString()
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
console.log('✅ Ticker subscription ID:', tickerSubscriptionId);
|
|
55
|
+
console.log('');
|
|
56
|
+
// Subscribe to trade updates
|
|
57
|
+
console.log('📈 Subscribing to INDY/USDT trade updates...');
|
|
58
|
+
tradesSubscriptionId = await mexc.subscribeTrades('INDY/USDT', (trade) => {
|
|
59
|
+
console.log('💰 Trade Update:', {
|
|
60
|
+
id: trade.id,
|
|
61
|
+
symbol: trade.symbol,
|
|
62
|
+
side: trade.side,
|
|
63
|
+
amount: trade.amount,
|
|
64
|
+
price: trade.price,
|
|
65
|
+
time: new Date(trade.timestamp).toISOString()
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
console.log('✅ Trades subscription ID:', tradesSubscriptionId);
|
|
69
|
+
console.log('');
|
|
70
|
+
// Listen for updates for 30 seconds
|
|
71
|
+
console.log('👂 Listening for real-time updates for 30 seconds...');
|
|
72
|
+
console.log('📡 Press Ctrl+C to stop early');
|
|
73
|
+
await new Promise(resolve => setTimeout(resolve, 30000));
|
|
74
|
+
console.log('⏰ 30 seconds elapsed, stopping subscriptions...');
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error('❌ Error during WebSocket testing:', error);
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
// Cleanup subscriptions
|
|
81
|
+
if (tickerSubscriptionId) {
|
|
82
|
+
try {
|
|
83
|
+
console.log('🧹 Unsubscribing from ticker updates...');
|
|
84
|
+
await mexc.unsubscribe(tickerSubscriptionId);
|
|
85
|
+
console.log('✅ Ticker subscription cancelled');
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.log('⚠️ Error unsubscribing from ticker:', error);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (tradesSubscriptionId) {
|
|
92
|
+
try {
|
|
93
|
+
console.log('🧹 Unsubscribing from trade updates...');
|
|
94
|
+
await mexc.unsubscribe(tradesSubscriptionId);
|
|
95
|
+
console.log('✅ Trades subscription cancelled');
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.log('⚠️ Error unsubscribing from trades:', error);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Disconnect WebSocket and REST
|
|
102
|
+
console.log('🔌 Disconnecting from MEXC...');
|
|
103
|
+
await mexc.disconnect();
|
|
104
|
+
console.log('✅ WebSocket test completed and disconnected!');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Run the test if this file is executed directly
|
|
108
|
+
if (require.main === module) {
|
|
109
|
+
console.log('🚀 Starting MEXC WebSocket test...\n');
|
|
110
|
+
testMexcWebSocket().catch((error) => {
|
|
111
|
+
console.error('❌ Fatal error:', error);
|
|
112
|
+
process.exit(1);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=mexc-websocket-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mexc-websocket-test.js","sourceRoot":"","sources":["../../src/examples/mexc-websocket-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
/**
|
|
3
|
+
* Test Example: MEXC Protobuf Status Detection
|
|
4
|
+
*
|
|
5
|
+
* This example tests the protobuf status detection with real message patterns
|
|
6
|
+
* from the user's logs to ensure cancelled orders are not misidentified as filled.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=test-protobuf-status-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-protobuf-status-detection.d.ts","sourceRoot":"","sources":["../../src/examples/test-protobuf-status-detection.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Test Example: MEXC Protobuf Status Detection
|
|
5
|
+
*
|
|
6
|
+
* This example tests the protobuf status detection with real message patterns
|
|
7
|
+
* from the user's logs to ensure cancelled orders are not misidentified as filled.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const mexc_protobuf_decoder_1 = require("../exchanges/mexc/mexc-protobuf-decoder");
|
|
11
|
+
console.log('🧪 Testing MEXC Protobuf Status Detection\n');
|
|
12
|
+
// Test cases from the user's actual logs
|
|
13
|
+
const testCases = [
|
|
14
|
+
{
|
|
15
|
+
name: 'Cancelled Order (was incorrectly detected as filled)',
|
|
16
|
+
// This is the actual problematic message from the logs
|
|
17
|
+
message: '\n\x1Dspot@private.orders.v3.api.pb\x1A\bINDYUSDT0����3�\x13]\n\x1AC02__627797424542343168060\x1A\x060.3328"\x0528.98*\b9.6445442\x0108\x01@\x02R\b9.644544Z\x0528.98j\x010r\x010x\x04�\x01����3',
|
|
18
|
+
expectedStatus: 'cancelled',
|
|
19
|
+
description: 'Order that was cancelled during bulk operation but had both filled and cancelled indicators'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Genuine Filled Order',
|
|
23
|
+
// This is an actually filled order message
|
|
24
|
+
message: '\n\x1Dspot@private.orders.v3.api.pb\x1A\bINDYUSDT0����3�\x13i\n\x1AC02__627797402794909698060\x1A\x060.3229"\x0528.98*\b3.87942\x00608\x01@\x02R\x063.8794Z\x0511.41j\x010r\x010x\x02�\x01����3',
|
|
25
|
+
expectedStatus: 'filled',
|
|
26
|
+
description: 'Order that was actually filled (should trigger grid recreation)'
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'New Order',
|
|
30
|
+
// This is a new order message
|
|
31
|
+
message: '\n\x1Dspot@private.orders.v3.api.pb\x1A\bINDYUSDT0����3�\x13Z\n\x1AC02__627797420385812480060\x1A\x050.323"\x0528.98*\x079.360542\x0108\x01@\x01R\x079.36054Z\x0528.98j\x010r\x010x\x01�\x01�����3',
|
|
32
|
+
expectedStatus: 'new',
|
|
33
|
+
description: 'Newly created order (should be tracked but not trigger recreation)'
|
|
34
|
+
}
|
|
35
|
+
];
|
|
36
|
+
console.log('Testing with actual problematic messages from user logs:\n');
|
|
37
|
+
let passedTests = 0;
|
|
38
|
+
let failedTests = 0;
|
|
39
|
+
testCases.forEach((testCase, index) => {
|
|
40
|
+
console.log(`${index + 1}. ${testCase.name}`);
|
|
41
|
+
console.log(` Description: ${testCase.description}`);
|
|
42
|
+
const result = mexc_protobuf_decoder_1.MexcProtobufDecoder.decode(testCase.message);
|
|
43
|
+
if (result.type === 'order' && result.decoded) {
|
|
44
|
+
const orderData = result.decoded;
|
|
45
|
+
const actualStatus = orderData.status;
|
|
46
|
+
console.log(` Order ID: ${orderData.orderId}`);
|
|
47
|
+
console.log(` Symbol: ${orderData.symbol}`);
|
|
48
|
+
console.log(` Expected Status: ${testCase.expectedStatus}`);
|
|
49
|
+
console.log(` Actual Status: ${actualStatus}`);
|
|
50
|
+
if (actualStatus === testCase.expectedStatus) {
|
|
51
|
+
console.log(` ✅ PASS - Status correctly detected`);
|
|
52
|
+
passedTests++;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log(` ❌ FAIL - Status incorrectly detected`);
|
|
56
|
+
failedTests++;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.log(` ❌ FAIL - Could not decode message`);
|
|
61
|
+
failedTests++;
|
|
62
|
+
}
|
|
63
|
+
console.log('');
|
|
64
|
+
});
|
|
65
|
+
console.log(`\n📊 Test Results:`);
|
|
66
|
+
console.log(` ✅ Passed: ${passedTests}`);
|
|
67
|
+
console.log(` ❌ Failed: ${failedTests}`);
|
|
68
|
+
console.log(` Total: ${passedTests + failedTests}`);
|
|
69
|
+
if (failedTests === 0) {
|
|
70
|
+
console.log('\n🎉 All tests passed! Protobuf status detection is working correctly.');
|
|
71
|
+
console.log(' - Cancelled orders will be correctly identified as cancelled');
|
|
72
|
+
console.log(' - Grid strategy will only recreate on actual fills, not cancellations');
|
|
73
|
+
console.log(' - The infinite recreation loop issue should be resolved');
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.log('\n⚠️ Some tests failed. The status detection issue may still exist.');
|
|
77
|
+
}
|
|
78
|
+
console.log('\n🔧 Grid Strategy Impact:');
|
|
79
|
+
console.log(' - ✅ Filled orders → Trigger grid recreation (correct behavior)');
|
|
80
|
+
console.log(' - ✅ Cancelled orders → No action taken (correct behavior)');
|
|
81
|
+
console.log(' - ✅ New orders → Tracked but no recreation (correct behavior)');
|
|
82
|
+
console.log(' - ✅ No more infinite recreation loops from misdetected cancellations');
|
|
83
|
+
//# sourceMappingURL=test-protobuf-status-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-protobuf-status-detection.js","sourceRoot":"","sources":["../../src/examples/test-protobuf-status-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Order, OrderBook, Ticker, Trade, OrderType, OrderSide } from '../types';
|
|
2
|
+
import { Balance, ExchangeCredentials } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base class for all exchange connectors
|
|
5
|
+
* Provides common functionality and defines the interface that all exchanges must implement
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class BaseExchangeConnector {
|
|
8
|
+
protected readonly exchangeId: string;
|
|
9
|
+
protected readonly exchangeName: string;
|
|
10
|
+
protected credentials?: ExchangeCredentials;
|
|
11
|
+
protected connected: boolean;
|
|
12
|
+
constructor(exchangeId: string, exchangeName: string);
|
|
13
|
+
get id(): string;
|
|
14
|
+
get name(): string;
|
|
15
|
+
abstract connect(): Promise<void>;
|
|
16
|
+
abstract disconnect(): Promise<void>;
|
|
17
|
+
isConnected(): boolean;
|
|
18
|
+
setCredentials(credentials: ExchangeCredentials): void;
|
|
19
|
+
protected getCredentials(): ExchangeCredentials;
|
|
20
|
+
abstract getBalance(): Promise<Record<string, Balance>>;
|
|
21
|
+
abstract createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number): Promise<Order>;
|
|
22
|
+
abstract cancelOrder(orderId: string, symbol: string): Promise<void>;
|
|
23
|
+
abstract getOrder(orderId: string, symbol: string): Promise<Order>;
|
|
24
|
+
abstract getOpenOrders(symbol?: string): Promise<Order[]>;
|
|
25
|
+
abstract getTicker(symbol: string): Promise<Ticker>;
|
|
26
|
+
abstract getOrderBook(symbol: string): Promise<OrderBook>;
|
|
27
|
+
abstract getRecentTrades(symbol: string): Promise<Trade[]>;
|
|
28
|
+
protected validateSymbol(symbol: string): void;
|
|
29
|
+
protected validateAmount(amount: number): void;
|
|
30
|
+
protected validatePrice(price: number | undefined, orderType: OrderType): void;
|
|
31
|
+
protected handleError(error: any, operation: string): never;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=base-exchange-connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-exchange-connector.d.ts","sourceRoot":"","sources":["../../src/exchanges/base-exchange-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAExD;;;GAGG;AACH,8BAAsB,qBAAqB;IACzC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC5C,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;gBAEzB,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAKpD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC,WAAW,IAAI,OAAO;IAItB,cAAc,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAItD,SAAS,CAAC,cAAc,IAAI,mBAAmB;IAO/C,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvD,QAAQ,CAAC,WAAW,CAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC;IAEjB,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpE,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAClE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAEzD,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACnD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IACzD,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAG1D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9C,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9C,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAO9E,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;CAI5D"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseExchangeConnector = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Abstract base class for all exchange connectors
|
|
6
|
+
* Provides common functionality and defines the interface that all exchanges must implement
|
|
7
|
+
*/
|
|
8
|
+
class BaseExchangeConnector {
|
|
9
|
+
constructor(exchangeId, exchangeName) {
|
|
10
|
+
this.connected = false;
|
|
11
|
+
this.exchangeId = exchangeId;
|
|
12
|
+
this.exchangeName = exchangeName;
|
|
13
|
+
}
|
|
14
|
+
get id() {
|
|
15
|
+
return this.exchangeId;
|
|
16
|
+
}
|
|
17
|
+
get name() {
|
|
18
|
+
return this.exchangeName;
|
|
19
|
+
}
|
|
20
|
+
isConnected() {
|
|
21
|
+
return this.connected;
|
|
22
|
+
}
|
|
23
|
+
setCredentials(credentials) {
|
|
24
|
+
this.credentials = credentials;
|
|
25
|
+
}
|
|
26
|
+
getCredentials() {
|
|
27
|
+
if (!this.credentials) {
|
|
28
|
+
throw new Error(`No credentials set for ${this.exchangeName}`);
|
|
29
|
+
}
|
|
30
|
+
return this.credentials;
|
|
31
|
+
}
|
|
32
|
+
// Common utility methods that can be overridden
|
|
33
|
+
validateSymbol(symbol) {
|
|
34
|
+
if (!symbol || typeof symbol !== 'string') {
|
|
35
|
+
throw new Error('Invalid symbol provided');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
validateAmount(amount) {
|
|
39
|
+
if (!amount || amount <= 0) {
|
|
40
|
+
throw new Error('Invalid amount provided');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
validatePrice(price, orderType) {
|
|
44
|
+
if (orderType === 'limit' && (!price || price <= 0)) {
|
|
45
|
+
throw new Error('Price required for limit orders');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Error handling helper
|
|
49
|
+
handleError(error, operation) {
|
|
50
|
+
const message = error?.message || error?.toString() || 'Unknown error';
|
|
51
|
+
throw new Error(`${this.exchangeName} ${operation} failed: ${message}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.BaseExchangeConnector = BaseExchangeConnector;
|
|
55
|
+
//# sourceMappingURL=base-exchange-connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-exchange-connector.js","sourceRoot":"","sources":["../../src/exchanges/base-exchange-connector.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAsB,qBAAqB;IAMzC,YAAY,UAAkB,EAAE,YAAoB;QAF1C,cAAS,GAAY,KAAK,CAAC;QAGnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAKD,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,WAAgC;QAC7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAES,cAAc;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAoBD,gDAAgD;IACtC,cAAc,CAAC,MAAc;QACrC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAES,cAAc,CAAC,MAAc;QACrC,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAES,aAAa,CAAC,KAAyB,EAAE,SAAoB;QACrE,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,wBAAwB;IACd,WAAW,CAAC,KAAU,EAAE,SAAiB;QACjD,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI,eAAe,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,YAAY,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF;AA/ED,sDA+EC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ExchangeCredentials } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Extended credentials for Bitget that includes passphrase
|
|
4
|
+
*/
|
|
5
|
+
export interface BitgetCredentials extends ExchangeCredentials {
|
|
6
|
+
passphrase: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Bitget Authentication and Request Handler
|
|
10
|
+
*
|
|
11
|
+
* Handles API authentication, request signing, and HTTP requests to Bitget API.
|
|
12
|
+
* Implements Bitget's HMAC-SHA256 signature generation with BASE64 encoding.
|
|
13
|
+
*
|
|
14
|
+
* @see https://www.bitget.com/api-doc/common/signature
|
|
15
|
+
*/
|
|
16
|
+
export declare class BitgetAuth {
|
|
17
|
+
private readonly credentials;
|
|
18
|
+
private readonly baseUrl;
|
|
19
|
+
private logger;
|
|
20
|
+
/**
|
|
21
|
+
* Initialize Bitget authentication handler
|
|
22
|
+
*
|
|
23
|
+
* @param credentials - Bitget API credentials including API key, secret, and passphrase
|
|
24
|
+
* @param baseUrl - Base URL for Bitget API (defaults to production)
|
|
25
|
+
*/
|
|
26
|
+
constructor(credentials: BitgetCredentials, baseUrl?: string);
|
|
27
|
+
/**
|
|
28
|
+
* Generate HMAC-SHA256 signature for Bitget API requests
|
|
29
|
+
*/
|
|
30
|
+
generateSignature(timestamp: number, method: string, requestPath: string, queryString?: string, body?: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Get required headers for authenticated Bitget API requests
|
|
33
|
+
*/
|
|
34
|
+
getHeaders(method: string, requestPath: string, queryString?: string, body?: string, timestamp?: number): Record<string, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Get headers for public API endpoints
|
|
37
|
+
*/
|
|
38
|
+
getPublicHeaders(): Record<string, string>;
|
|
39
|
+
/**
|
|
40
|
+
* Make authenticated request to Bitget API
|
|
41
|
+
*/
|
|
42
|
+
makeRequest(endpoint: string, params?: Record<string, unknown>, method?: 'GET' | 'POST' | 'PUT' | 'DELETE', body?: Record<string, unknown>): Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* Make public request to Bitget API
|
|
45
|
+
*/
|
|
46
|
+
makePublicRequest(endpoint: string, params?: Record<string, unknown>): Promise<any>;
|
|
47
|
+
/**
|
|
48
|
+
* Handle API response and extract meaningful error messages
|
|
49
|
+
*/
|
|
50
|
+
private handleResponse;
|
|
51
|
+
/**
|
|
52
|
+
* Validate that all required credentials are provided
|
|
53
|
+
*/
|
|
54
|
+
private validateCredentials;
|
|
55
|
+
/**
|
|
56
|
+
* Check if credentials are properly configured
|
|
57
|
+
*/
|
|
58
|
+
validateCredentialsExist(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Get credentials for WebSocket authentication
|
|
61
|
+
*
|
|
62
|
+
* @returns The BitgetCredentials object
|
|
63
|
+
*/
|
|
64
|
+
getCredentials(): BitgetCredentials;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=bitget-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitget-auth.d.ts","sourceRoot":"","sources":["../../../src/exchanges/bitget/bitget-auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,MAAM,CAA+B;IAE7C;;;;;OAKG;gBACS,WAAW,EAAE,iBAAiB,EAAE,OAAO,GAAE,MAAiC;IAMtF;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,MAAW,EACxB,IAAI,GAAE,MAAW,GAChB,MAAM;IAcT;;OAEG;IACH,UAAU,CACR,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,MAAW,EACxB,IAAI,GAAE,MAAW,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAmBzB;;OAEG;IACH,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM1C;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAgB,EACjD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,GAAG,CAAC;IA8Bf;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAsB7F;;OAEG;YACW,cAAc;IAqD5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,wBAAwB,IAAI,OAAO;IASnC;;;;OAIG;IACH,cAAc,IAAI,iBAAiB;CAGpC"}
|