tiagosiebler / binance

Node.js & JavaScript SDK for Binance REST APIs & WebSockets, with TypeScript & browser support, integration tests, beautification & more.
MIT License
728 stars 264 forks source link

subscribeContinuousContractKlines method returns error ERR_INVALID_URL #431

Closed futurfuturfuturfutur closed 1 week ago

futurfuturfuturfutur commented 2 weeks ago

Using it like following wsClient.subscribeContinuousContractKlines('BTCUSDT', 'perpetual'); and getting the error

node:internal/url:814
    const href = bindingUrl.parse(input, base, raiseException);
                            ^

TypeError: Invalid URL
    at new URL (node:internal/url:814:29)
    at initAsClient (/app/node_modules/ws/lib/websocket.js:614:17)
    at new WebSocket (/app/node_modules/ws/lib/websocket.js:74:7)
    at WebsocketClient.connectToWsUrl (/app/node_modules/binance/lib/websocket-client.js:129:20)
    at WebsocketClient.subscribeContinuousContractKlines (/app/node_modules/binance/lib/websocket-client.js:781:21)
    at Object.<anonymous> (/app/binance.js:52:10)
    at Module._compile (node:internal/modules/cjs/loader:1460:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1544:10)
    at Module.load (node:internal/modules/cjs/loader:1275:32)
    at Module._load (node:internal/modules/cjs/loader:1091:12) {
  code: 'ERR_INVALID_URL',
  input: 'undefined/ws/btcusdt_perpetual@continuousKline_undefined'
}
tiagosiebler commented 2 weeks ago

Hey @futurfuturfuturfutur - looks like you're missing two parameters, which are used to build the URL: https://github.com/tiagosiebler/binance/blob/master/src/websocket-client.ts#L1339-L1340

One example for how it should look (assuming 12h klines on usdm markets)

  wsClient.subscribeContinuousContractKlines('BTCUSDT', 'perpetual', '12h', 'usdm')