@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,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KrakenDataMapper = void 0;
|
|
4
|
+
const kraken_utils_1 = require("./kraken-utils");
|
|
5
|
+
class KrakenDataMapper {
|
|
6
|
+
mapBalance(balances) {
|
|
7
|
+
const result = {};
|
|
8
|
+
for (const [krakenAsset, amount] of Object.entries(balances)) {
|
|
9
|
+
const total = parseFloat(amount);
|
|
10
|
+
const standardAsset = kraken_utils_1.KrakenUtils.fromKrakenAsset(krakenAsset);
|
|
11
|
+
result[standardAsset] = {
|
|
12
|
+
asset: standardAsset,
|
|
13
|
+
free: total,
|
|
14
|
+
used: 0,
|
|
15
|
+
total,
|
|
16
|
+
available: total,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
mapTicker(data) {
|
|
22
|
+
const ask = data.a;
|
|
23
|
+
const bid = data.b;
|
|
24
|
+
const last = data.c;
|
|
25
|
+
const volume = data.v;
|
|
26
|
+
return {
|
|
27
|
+
symbol: '',
|
|
28
|
+
bid: parseFloat(bid[0]),
|
|
29
|
+
ask: parseFloat(ask[0]),
|
|
30
|
+
last: parseFloat(last[0]),
|
|
31
|
+
baseVolume: parseFloat(volume[1]),
|
|
32
|
+
quoteVolume: parseFloat(volume[0]),
|
|
33
|
+
timestamp: Date.now(),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
mapOrderBook(data) {
|
|
37
|
+
const asks = data.asks.map(([price, volume]) => ({
|
|
38
|
+
price: parseFloat(price),
|
|
39
|
+
amount: parseFloat(volume),
|
|
40
|
+
}));
|
|
41
|
+
const bids = data.bids.map(([price, volume]) => ({
|
|
42
|
+
price: parseFloat(price),
|
|
43
|
+
amount: parseFloat(volume),
|
|
44
|
+
}));
|
|
45
|
+
return {
|
|
46
|
+
symbol: '',
|
|
47
|
+
bids,
|
|
48
|
+
asks,
|
|
49
|
+
timestamp: Date.now(),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
mapTrade(trade) {
|
|
53
|
+
const tradeArray = trade;
|
|
54
|
+
const [price, volume, time, side] = tradeArray;
|
|
55
|
+
return {
|
|
56
|
+
id: time.toString(),
|
|
57
|
+
symbol: '',
|
|
58
|
+
price: parseFloat(price),
|
|
59
|
+
amount: parseFloat(volume),
|
|
60
|
+
side: side === 'b' ? 'buy' : 'sell',
|
|
61
|
+
timestamp: kraken_utils_1.KrakenUtils.parseTimestamp(time),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
mapTrades(trades) {
|
|
65
|
+
return trades.map(([price, volume, time, side]) => ({
|
|
66
|
+
id: time.toString(),
|
|
67
|
+
symbol: '',
|
|
68
|
+
price: parseFloat(price),
|
|
69
|
+
amount: parseFloat(volume),
|
|
70
|
+
side: side === 'b' ? 'buy' : 'sell',
|
|
71
|
+
timestamp: kraken_utils_1.KrakenUtils.parseTimestamp(time),
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
mapOrder(order) {
|
|
75
|
+
const descr = order.descr;
|
|
76
|
+
const status = kraken_utils_1.KrakenUtils.mapOrderStatus(order.status);
|
|
77
|
+
const side = kraken_utils_1.KrakenUtils.fromKrakenOrderSide(descr.type.startsWith('buy') ? 'buy' : 'sell');
|
|
78
|
+
const type = kraken_utils_1.KrakenUtils.fromKrakenOrderType(descr.ordertype);
|
|
79
|
+
return {
|
|
80
|
+
id: order.txid,
|
|
81
|
+
symbol: descr.pair,
|
|
82
|
+
type,
|
|
83
|
+
side,
|
|
84
|
+
price: parseFloat(descr.price || '0'),
|
|
85
|
+
amount: parseFloat(order.vol),
|
|
86
|
+
filled: parseFloat(order.vol_exec),
|
|
87
|
+
remaining: parseFloat(order.vol) - parseFloat(order.vol_exec),
|
|
88
|
+
status,
|
|
89
|
+
timestamp: kraken_utils_1.KrakenUtils.parseTimestamp(order.opentm),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
mapWebSocketTicker(data) {
|
|
93
|
+
return {
|
|
94
|
+
symbol: '',
|
|
95
|
+
bid: parseFloat(data.bid || '0'),
|
|
96
|
+
ask: parseFloat(data.ask || '0'),
|
|
97
|
+
last: parseFloat(data.last || '0'),
|
|
98
|
+
baseVolume: parseFloat(data.volume || '0'),
|
|
99
|
+
quoteVolume: parseFloat(data.volume_quote || '0'),
|
|
100
|
+
timestamp: typeof data.timestamp === 'number' ? data.timestamp : Date.now(),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
mapWebSocketOrderBook(data) {
|
|
104
|
+
const asks = (data.asks || []).map((ask) => ({
|
|
105
|
+
price: parseFloat(ask.price || ask[0]),
|
|
106
|
+
amount: parseFloat(ask.qty || ask[1]),
|
|
107
|
+
}));
|
|
108
|
+
const bids = (data.bids || []).map((bid) => ({
|
|
109
|
+
price: parseFloat(bid.price || bid[0]),
|
|
110
|
+
amount: parseFloat(bid.qty || bid[1]),
|
|
111
|
+
}));
|
|
112
|
+
return {
|
|
113
|
+
symbol: '',
|
|
114
|
+
bids,
|
|
115
|
+
asks,
|
|
116
|
+
timestamp: typeof data.timestamp === 'number' ? data.timestamp : Date.now(),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
mapWebSocketTrade(data) {
|
|
120
|
+
return {
|
|
121
|
+
id: data.trade_id || data.ord_id || Date.now().toString(),
|
|
122
|
+
symbol: '',
|
|
123
|
+
price: parseFloat(data.price),
|
|
124
|
+
amount: parseFloat(data.qty || data.volume || '0'),
|
|
125
|
+
side: data.side === 'buy' ? 'buy' : 'sell',
|
|
126
|
+
timestamp: typeof data.timestamp === 'number' ? data.timestamp : Date.now(),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
mapWebSocketOrder(data) {
|
|
130
|
+
const rawStatus = data.order_status || data.ord_status || data.status || 'open';
|
|
131
|
+
const status = kraken_utils_1.KrakenUtils.mapOrderStatus(rawStatus);
|
|
132
|
+
const symbol = data.symbol ? kraken_utils_1.KrakenUtils.fromKrakenSymbol(data.symbol) : '';
|
|
133
|
+
const cumQty = typeof data.cum_qty === 'number' ? data.cum_qty : parseFloat(data.cum_qty || '0');
|
|
134
|
+
const filled = cumQty || parseFloat(data.cum_exec_qty || data.exec_qty || data.filled_qty || '0');
|
|
135
|
+
let amount = parseFloat(data.order_qty || data.qty || '0');
|
|
136
|
+
if (amount === 0 && filled > 0) {
|
|
137
|
+
amount = filled;
|
|
138
|
+
}
|
|
139
|
+
const remaining = amount > 0 ? Math.max(0, amount - filled) : 0;
|
|
140
|
+
let finalStatus = status;
|
|
141
|
+
if (data.order_status === 'filled' || data.exec_type === 'filled') {
|
|
142
|
+
finalStatus = 'filled';
|
|
143
|
+
}
|
|
144
|
+
else if (data.order_status === 'partially_filled' ||
|
|
145
|
+
(data.exec_type === 'trade' && filled > 0 && filled < amount)) {
|
|
146
|
+
finalStatus = 'partially_filled';
|
|
147
|
+
}
|
|
148
|
+
else if (data.order_status === 'new' || data.exec_type === 'new') {
|
|
149
|
+
finalStatus = 'open';
|
|
150
|
+
}
|
|
151
|
+
else if (data.order_status === 'canceled' || data.exec_type === 'canceled') {
|
|
152
|
+
finalStatus = 'cancelled';
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
id: data.order_id || data.ord_id || data.orderId || Date.now().toString(),
|
|
156
|
+
symbol,
|
|
157
|
+
type: data.order_type === 'market' ? 'market' : 'limit',
|
|
158
|
+
side: data.side === 'buy' ? 'buy' : 'sell',
|
|
159
|
+
price: parseFloat(data.avg_price ? String(data.avg_price) : data.limit_price || data.price || '0'),
|
|
160
|
+
amount,
|
|
161
|
+
filled,
|
|
162
|
+
remaining,
|
|
163
|
+
status: finalStatus,
|
|
164
|
+
timestamp: typeof data.timestamp === 'number' ? data.timestamp : Date.now(),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.KrakenDataMapper = KrakenDataMapper;
|
|
169
|
+
//# sourceMappingURL=kraken-data-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kraken-data-mapper.js","sourceRoot":"","sources":["../../../src/exchanges/kraken/kraken-data-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kraken Utility Functions
|
|
3
|
+
* Symbol conversion, error mapping, and validation utilities
|
|
4
|
+
*/
|
|
5
|
+
export declare class KrakenUtils {
|
|
6
|
+
/**
|
|
7
|
+
* Convert symbol from standard format to Kraken format
|
|
8
|
+
* Standard: BTC/USD → Kraken: XXBTZUSD or XBTUSD
|
|
9
|
+
* Standard: ETH/USD → Kraken: XETHZUSD
|
|
10
|
+
*/
|
|
11
|
+
static toKrakenSymbol(symbol: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Convert symbol from Kraken format to standard format
|
|
14
|
+
* Kraken: XXBTZUSD → Standard: BTC/USD
|
|
15
|
+
* Kraken: XETHZEUR → Standard: ETH/EUR
|
|
16
|
+
*/
|
|
17
|
+
static fromKrakenSymbol(krakenSymbol: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Map Kraken error codes to standardized error messages
|
|
20
|
+
*
|
|
21
|
+
* Kraken error format: { error: ["EAPI:Invalid key", "EGeneral:Invalid arguments"] }
|
|
22
|
+
*/
|
|
23
|
+
static mapErrorMessage(krakenError: unknown): string;
|
|
24
|
+
/**
|
|
25
|
+
* Parse timestamp from Kraken response
|
|
26
|
+
* Kraken uses seconds (as number) for timestamps
|
|
27
|
+
*/
|
|
28
|
+
static parseTimestamp(timestamp: string | number): number;
|
|
29
|
+
/**
|
|
30
|
+
* Convert order side from Kraken format
|
|
31
|
+
* Kraken: buy/sell → Standard: buy/sell
|
|
32
|
+
*/
|
|
33
|
+
static fromKrakenOrderSide(side: string): 'buy' | 'sell';
|
|
34
|
+
/**
|
|
35
|
+
* Convert order type from Kraken format
|
|
36
|
+
* Kraken: limit/market → Standard: limit/market
|
|
37
|
+
*/
|
|
38
|
+
static fromKrakenOrderType(type: string): 'limit' | 'market';
|
|
39
|
+
/**
|
|
40
|
+
* Map Kraken order status to standard format
|
|
41
|
+
*/
|
|
42
|
+
static mapOrderStatus(status: string): 'open' | 'filled' | 'cancelled' | 'rejected' | 'partially_filled';
|
|
43
|
+
/**
|
|
44
|
+
* Convert Kraken asset name to standard asset name
|
|
45
|
+
* Kraken: ZEUR → Standard: EUR
|
|
46
|
+
* Kraken: ZUSD → Standard: USD
|
|
47
|
+
* Kraken: XXBT → Standard: BTC
|
|
48
|
+
* Kraken: ADA → Standard: ADA (Cardano native token)
|
|
49
|
+
*/
|
|
50
|
+
static fromKrakenAsset(krakenAsset: string): string;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=kraken-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kraken-utils.d.ts","sourceRoot":"","sources":["../../../src/exchanges/kraken/kraken-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAqB7C;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiCrD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM;IAgFpD;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAUzD;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM;IAIxD;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ;IAI5D;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,kBAAkB;IAiBpE;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CA8BpD"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KrakenUtils = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Kraken Utility Functions
|
|
6
|
+
* Symbol conversion, error mapping, and validation utilities
|
|
7
|
+
*/
|
|
8
|
+
class KrakenUtils {
|
|
9
|
+
/**
|
|
10
|
+
* Convert symbol from standard format to Kraken format
|
|
11
|
+
* Standard: BTC/USD → Kraken: XXBTZUSD or XBTUSD
|
|
12
|
+
* Standard: ETH/USD → Kraken: XETHZUSD
|
|
13
|
+
*/
|
|
14
|
+
static toKrakenSymbol(symbol) {
|
|
15
|
+
const [base, quote] = symbol.split('/');
|
|
16
|
+
const baseMap = {
|
|
17
|
+
BTC: 'XBT',
|
|
18
|
+
DOGE: 'XDG',
|
|
19
|
+
};
|
|
20
|
+
const mappedBase = baseMap[base] || base;
|
|
21
|
+
if ((mappedBase === 'XBT' || base === 'ETH') && (quote === 'USD' || quote === 'EUR')) {
|
|
22
|
+
return `X${mappedBase}Z${quote}`;
|
|
23
|
+
}
|
|
24
|
+
if (quote === 'USDC' || quote === 'USDT' || quote === 'DAI') {
|
|
25
|
+
return `${mappedBase}${quote}`;
|
|
26
|
+
}
|
|
27
|
+
return `${mappedBase}${quote}`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Convert symbol from Kraken format to standard format
|
|
31
|
+
* Kraken: XXBTZUSD → Standard: BTC/USD
|
|
32
|
+
* Kraken: XETHZEUR → Standard: ETH/EUR
|
|
33
|
+
*/
|
|
34
|
+
static fromKrakenSymbol(krakenSymbol) {
|
|
35
|
+
const symbolMap = {
|
|
36
|
+
XXBTZUSD: 'BTC/USD',
|
|
37
|
+
XETHZUSD: 'ETH/USD',
|
|
38
|
+
XXBTZEUR: 'BTC/EUR',
|
|
39
|
+
XETHZEUR: 'ETH/EUR',
|
|
40
|
+
XBTUSD: 'BTC/USD',
|
|
41
|
+
ETHUSD: 'ETH/USD',
|
|
42
|
+
XBTEUR: 'BTC/EUR',
|
|
43
|
+
ETHEUR: 'ETH/EUR',
|
|
44
|
+
};
|
|
45
|
+
if (symbolMap[krakenSymbol]) {
|
|
46
|
+
return symbolMap[krakenSymbol];
|
|
47
|
+
}
|
|
48
|
+
const xzMatch = krakenSymbol.match(/^X([A-Z]{3})Z([A-Z]{3})$/);
|
|
49
|
+
if (xzMatch) {
|
|
50
|
+
const base = xzMatch[1] === 'XBT' ? 'BTC' : xzMatch[1];
|
|
51
|
+
const quote = xzMatch[2];
|
|
52
|
+
return `${base}/${quote}`;
|
|
53
|
+
}
|
|
54
|
+
const simpleMatch = krakenSymbol.match(/^([A-Z]{3,4})([A-Z]{3,4})$/);
|
|
55
|
+
if (simpleMatch) {
|
|
56
|
+
const base = simpleMatch[1] === 'XBT' ? 'BTC' : simpleMatch[1];
|
|
57
|
+
const quote = simpleMatch[2];
|
|
58
|
+
return `${base}/${quote}`;
|
|
59
|
+
}
|
|
60
|
+
return krakenSymbol;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Map Kraken error codes to standardized error messages
|
|
64
|
+
*
|
|
65
|
+
* Kraken error format: { error: ["EAPI:Invalid key", "EGeneral:Invalid arguments"] }
|
|
66
|
+
*/
|
|
67
|
+
static mapErrorMessage(krakenError) {
|
|
68
|
+
if (!krakenError)
|
|
69
|
+
return 'Unknown error';
|
|
70
|
+
if (Array.isArray(krakenError)) {
|
|
71
|
+
return krakenError.join(', ');
|
|
72
|
+
}
|
|
73
|
+
const error = krakenError;
|
|
74
|
+
const errorMessages = error.error || [];
|
|
75
|
+
if (errorMessages.length === 0) {
|
|
76
|
+
return typeof krakenError === 'string' ? krakenError : 'Unknown error';
|
|
77
|
+
}
|
|
78
|
+
const errorMap = {
|
|
79
|
+
// API errors
|
|
80
|
+
'EAPI:Invalid key': 'Invalid API key',
|
|
81
|
+
'EAPI:Invalid signature': 'Invalid signature',
|
|
82
|
+
'EAPI:Invalid nonce': 'Invalid or duplicate nonce',
|
|
83
|
+
'EAPI:Invalid arguments': 'Invalid arguments provided',
|
|
84
|
+
'EAPI:Feature disabled': 'Feature is disabled',
|
|
85
|
+
// Permission errors
|
|
86
|
+
'EGeneral:Permission denied': 'Permission denied for this operation',
|
|
87
|
+
'EGeneral:Invalid arguments': 'Invalid arguments',
|
|
88
|
+
// Order errors
|
|
89
|
+
'EOrder:Invalid order': 'Invalid order',
|
|
90
|
+
'EOrder:Unknown order': 'Order not found',
|
|
91
|
+
'EOrder:Invalid price': 'Invalid price',
|
|
92
|
+
'EOrder:Invalid volume': 'Invalid volume',
|
|
93
|
+
'EOrder:Order minimum not met': 'Order minimum not met',
|
|
94
|
+
'EOrder:Order limits exceeded': 'Order limits exceeded',
|
|
95
|
+
'EOrder:Insufficient funds': 'Insufficient funds',
|
|
96
|
+
'EOrder:Insufficient margin': 'Insufficient margin',
|
|
97
|
+
'EOrder:Position limit exceeded': 'Position limit exceeded',
|
|
98
|
+
'EOrder:Margin allowance exceeded': 'Margin allowance exceeded',
|
|
99
|
+
// Trading errors
|
|
100
|
+
'ETrade:Invalid pair': 'Invalid trading pair',
|
|
101
|
+
'ETrade:Market closed': 'Market is closed',
|
|
102
|
+
// Service errors
|
|
103
|
+
'EService:Unavailable': 'Service temporarily unavailable',
|
|
104
|
+
'EService:Busy': 'Service is busy, try again later',
|
|
105
|
+
'EService:Market in cancel only mode': 'Market in cancel-only mode',
|
|
106
|
+
'EService:Market in post only mode': 'Market in post-only mode',
|
|
107
|
+
// Database errors
|
|
108
|
+
'EDatabase:Internal error': 'Internal database error',
|
|
109
|
+
'EDatabase:Unavailable': 'Database unavailable',
|
|
110
|
+
// Network errors
|
|
111
|
+
'ENetwork:Timeout': 'Network timeout',
|
|
112
|
+
'ENetwork:Unavailable': 'Network unavailable',
|
|
113
|
+
// General errors
|
|
114
|
+
'EGeneral:Unknown method': 'Unknown method',
|
|
115
|
+
'EGeneral:Invalid method': 'Invalid method',
|
|
116
|
+
'EGeneral:Internal error': 'Internal error',
|
|
117
|
+
'EGeneral:Rate limit': 'Rate limit exceeded',
|
|
118
|
+
};
|
|
119
|
+
const mappedErrors = errorMessages.map(errorMsg => {
|
|
120
|
+
if (errorMap[errorMsg]) {
|
|
121
|
+
return errorMap[errorMsg];
|
|
122
|
+
}
|
|
123
|
+
for (const [key, value] of Object.entries(errorMap)) {
|
|
124
|
+
if (errorMsg.includes(key.split(':')[0])) {
|
|
125
|
+
return value;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return errorMsg;
|
|
129
|
+
});
|
|
130
|
+
return `Kraken Error: ${mappedErrors.join(', ')}`;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Parse timestamp from Kraken response
|
|
134
|
+
* Kraken uses seconds (as number) for timestamps
|
|
135
|
+
*/
|
|
136
|
+
static parseTimestamp(timestamp) {
|
|
137
|
+
const ts = typeof timestamp === 'string' ? parseFloat(timestamp) : timestamp;
|
|
138
|
+
if (ts < 10000000000) {
|
|
139
|
+
return Math.floor(ts * 1000);
|
|
140
|
+
}
|
|
141
|
+
return Math.floor(ts);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Convert order side from Kraken format
|
|
145
|
+
* Kraken: buy/sell → Standard: buy/sell
|
|
146
|
+
*/
|
|
147
|
+
static fromKrakenOrderSide(side) {
|
|
148
|
+
return side.toLowerCase();
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Convert order type from Kraken format
|
|
152
|
+
* Kraken: limit/market → Standard: limit/market
|
|
153
|
+
*/
|
|
154
|
+
static fromKrakenOrderType(type) {
|
|
155
|
+
return type.toLowerCase();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Map Kraken order status to standard format
|
|
159
|
+
*/
|
|
160
|
+
static mapOrderStatus(status) {
|
|
161
|
+
const statusMap = {
|
|
162
|
+
pending: 'open',
|
|
163
|
+
new: 'open',
|
|
164
|
+
open: 'open',
|
|
165
|
+
closed: 'filled',
|
|
166
|
+
canceled: 'cancelled',
|
|
167
|
+
expired: 'cancelled',
|
|
168
|
+
'partially-filled': 'partially_filled',
|
|
169
|
+
};
|
|
170
|
+
return statusMap[status.toLowerCase()] || 'rejected';
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Convert Kraken asset name to standard asset name
|
|
174
|
+
* Kraken: ZEUR → Standard: EUR
|
|
175
|
+
* Kraken: ZUSD → Standard: USD
|
|
176
|
+
* Kraken: XXBT → Standard: BTC
|
|
177
|
+
* Kraken: ADA → Standard: ADA (Cardano native token)
|
|
178
|
+
*/
|
|
179
|
+
static fromKrakenAsset(krakenAsset) {
|
|
180
|
+
const assetMap = {
|
|
181
|
+
ZEUR: 'EUR',
|
|
182
|
+
ZUSD: 'USD',
|
|
183
|
+
ZGBP: 'GBP',
|
|
184
|
+
XXBT: 'BTC',
|
|
185
|
+
XETH: 'ETH',
|
|
186
|
+
ADA: 'ADA',
|
|
187
|
+
USDT: 'USDT',
|
|
188
|
+
USDC: 'USDC',
|
|
189
|
+
};
|
|
190
|
+
if (assetMap[krakenAsset]) {
|
|
191
|
+
return assetMap[krakenAsset];
|
|
192
|
+
}
|
|
193
|
+
if (krakenAsset.startsWith('Z') && krakenAsset.length === 4) {
|
|
194
|
+
return krakenAsset.substring(1); // ZSNEK → SNEK, ZNIGHT → NIGHT
|
|
195
|
+
}
|
|
196
|
+
if (krakenAsset.startsWith('X') && krakenAsset.length === 4) {
|
|
197
|
+
return krakenAsset.substring(1); // XSNEK → SNEK
|
|
198
|
+
}
|
|
199
|
+
if (krakenAsset.startsWith('XX') && krakenAsset.length === 5) {
|
|
200
|
+
return krakenAsset.substring(2); // XXSNEK → SNEK
|
|
201
|
+
}
|
|
202
|
+
return krakenAsset;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.KrakenUtils = KrakenUtils;
|
|
206
|
+
//# sourceMappingURL=kraken-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kraken-utils.js","sourceRoot":"","sources":["../../../src/exchanges/kraken/kraken-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { OrderBook, Ticker, Trade, WebSocketStatus, Order } from '../../types';
|
|
2
|
+
export declare class KrakenWebSocket {
|
|
3
|
+
private ws?;
|
|
4
|
+
private privateWs?;
|
|
5
|
+
private subscriptions;
|
|
6
|
+
private status;
|
|
7
|
+
private privateStatus;
|
|
8
|
+
private readonly publicWsUrl;
|
|
9
|
+
private readonly privateWsUrl;
|
|
10
|
+
private logger;
|
|
11
|
+
private reconnectTimer?;
|
|
12
|
+
private pingTimer?;
|
|
13
|
+
private privatePingTimer?;
|
|
14
|
+
private reconnectAttempts;
|
|
15
|
+
private maxReconnectAttempts;
|
|
16
|
+
private reconnectDelay;
|
|
17
|
+
private autoReconnect;
|
|
18
|
+
private pingInterval;
|
|
19
|
+
private readonly dataMapper;
|
|
20
|
+
private nextReqId;
|
|
21
|
+
private authToken?;
|
|
22
|
+
private auth?;
|
|
23
|
+
private pendingCancelRequests;
|
|
24
|
+
constructor(publicWsUrl?: string, privateWsUrl?: string);
|
|
25
|
+
setCredentials(apiKey: string, apiSecret: string): void;
|
|
26
|
+
connectWebSocket(): Promise<void>;
|
|
27
|
+
private onOpen;
|
|
28
|
+
private onClose;
|
|
29
|
+
private onError;
|
|
30
|
+
private onMessage;
|
|
31
|
+
private handleSubscriptionResponse;
|
|
32
|
+
private processMarketData;
|
|
33
|
+
private handleTickerData;
|
|
34
|
+
private handleOrderBookData;
|
|
35
|
+
private handleTradeData;
|
|
36
|
+
subscribeTicker(symbol: string, callback: (ticker: Ticker) => void): Promise<string>;
|
|
37
|
+
subscribeOrderBook(symbol: string, callback: (orderbook: OrderBook) => void): Promise<string>;
|
|
38
|
+
subscribeTrades(symbol: string, callback: (trade: Trade) => void): Promise<string>;
|
|
39
|
+
unsubscribe(subscriptionId: string): Promise<void>;
|
|
40
|
+
connectPrivateWebSocket(): Promise<void>;
|
|
41
|
+
private onPrivateOpen;
|
|
42
|
+
private authenticatePrivateWebSocket;
|
|
43
|
+
private onPrivateClose;
|
|
44
|
+
private onPrivateError;
|
|
45
|
+
private onPrivateMessage;
|
|
46
|
+
private handleUserOrderUpdate;
|
|
47
|
+
private handleCancelAllResponse;
|
|
48
|
+
subscribeUserOrders(callback: (order: Order) => void): Promise<string>;
|
|
49
|
+
subscribeUserTrades(callback: (trade: Trade) => void): Promise<string>;
|
|
50
|
+
cancelAllOrders(symbol?: string): Promise<void>;
|
|
51
|
+
private startPing;
|
|
52
|
+
private stopPing;
|
|
53
|
+
private startPrivatePing;
|
|
54
|
+
private stopPrivatePing;
|
|
55
|
+
private scheduleReconnect;
|
|
56
|
+
private resubscribeAll;
|
|
57
|
+
private getNextReqId;
|
|
58
|
+
disconnectWebSocket(): Promise<void>;
|
|
59
|
+
disconnectPrivateWebSocket(): Promise<void>;
|
|
60
|
+
isConnected(): boolean;
|
|
61
|
+
isPrivateConnected(): boolean;
|
|
62
|
+
getStatus(): WebSocketStatus;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=kraken-websocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kraken-websocket.d.ts","sourceRoot":"","sources":["../../../src/exchanges/kraken/kraken-websocket.ts"],"names":[],"mappings":"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"}
|