Skip to content

Commit

Permalink
Bug fix: Websockets allMiniTickers (ViewBlock#531)
Browse files Browse the repository at this point in the history
  • Loading branch information
TassosD authored Jan 13, 2022
1 parent 7f235e8 commit 1f36006
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 17 deletions.
3 changes: 3 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -659,6 +659,9 @@ declare module 'binance-api-node' {
pair: string | string[],
callback: (ticker: MiniTicker) => void,
) => ReconnectingWebSocketHandler
allMiniTickers: (
callback: (ticker: MiniTicker[]) => void,
) => ReconnectingWebSocketHandler
futuresTicker: (
pair: string | string[],
callback: (ticker: Ticker) => void,
Expand Down
21 changes: 8 additions & 13 deletions src/websocket.js
Original file line number Diff line number Diff line change
Expand Up @@ -296,20 +296,15 @@ const miniTicker = (payload, cb, transform = true) => {
cache.forEach(w => w.close(1000, 'Close handle was called', { keepClosed: true, ...options }))
}

const allMiniTicker = (payload, cb, transform = true) => {
const cache = (Array.isArray(payload) ? payload : [payload]).map(() => {
const w = openWebSocket(`${endpoints.base}/!miniTicker@arr`)
const allMiniTickers = (cb, transform = true) => {
const w = openWebSocket(`${endpoints.base}/!miniTicker@arr`)

w.onmessage = msg => {
const arr = JSONbig.parse(msg.data)
cb(transform ? arr.map(m => miniTickerTransform(m)) : arr)
}

return w
})
w.onmessage = msg => {
const arr = JSONbig.parse(msg.data)
cb(transform ? arr.map(m => miniTickerTransform(m)) : arr)
}

return options =>
cache.forEach(w => w.close(1000, 'Close handle was called', { keepClosed: true, ...options }))
return options => w => w.close(1000, 'Close handle was called', { keepClosed: true, ...options })
}

const customSubStream = (payload, cb, variator) => {
Expand Down Expand Up @@ -781,7 +776,7 @@ export default opts => {
ticker,
allTickers,
miniTicker,
allMiniTicker,
allMiniTickers,
customSubStream,
user: user(opts),

Expand Down
26 changes: 22 additions & 4 deletions test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -253,18 +253,36 @@ test('[WS] allTicker', t => {
test('[WS] miniTicker', t => {
return new Promise(resolve => {
client.ws.miniTicker('ETHBTC', ticker => {
checkFields(t, ticker, ['open', 'high', 'low', 'eventTime', 'symbol', 'volume'])
checkFields(t, ticker, [
'open',
'high',
'low',
'curDayClose',
'eventTime',
'symbol',
'volume',
'volumeQuote',
])
resolve()
})
})
})

test('[WS] allMiniTicker', t => {
test('[WS] allMiniTickers', t => {
return new Promise(resolve => {
client.ws.allMiniTicker('ETHBTC', tickers => {
client.ws.allMiniTickers(tickers => {
t.truthy(Array.isArray(tickers))
t.is(tickers[0].eventType, '24hrMiniTicker')
checkFields(t, tickers[0], ['open', 'high', 'low', 'eventTime', 'symbol', 'volume'])
checkFields(t, tickers[0], [
'open',
'high',
'low',
'curDayClose',
'eventTime',
'symbol',
'volume',
'volumeQuote',
])
resolve()
})
})
Expand Down

0 comments on commit 1f36006

Please sign in to comment.