@@ -63,9 +63,7 @@ class Bitfinex extends Exchange {
6363 }
6464
6565 if ( api . _connected . length === 0 ) {
66- const chanId = Object . keys ( this . channels ) . find (
67- id => this . channels [ id ] . name === 'status'
68- )
66+ const chanId = Object . keys ( this . channels [ api . id ] ) . find ( ( chanId ) => this . channels [ api . id ] [ chanId ] . name === 'status' )
6967
7068 if ( chanId ) {
7169 api . send (
@@ -75,13 +73,12 @@ class Bitfinex extends Exchange {
7573 } )
7674 )
7775
78- delete this . channels [ chanId ]
76+ delete this . channels [ api . id ] [ chanId ]
7977 }
8078 }
8179
82- const channelsToUnsubscribe = Object . keys ( this . channels ) . filter (
83- id =>
84- this . channels [ id ] . pair === pair && this . channels [ id ] . apiId === api . id
80+ const channelsToUnsubscribe = Object . keys ( this . channels [ api . id ] ) . filter (
81+ ( chanId ) => this . channels [ api . id ] [ chanId ] . pair === pair
8582 )
8683
8784 if ( ! channelsToUnsubscribe . length ) {
@@ -92,35 +89,36 @@ class Bitfinex extends Exchange {
9289 return
9390 }
9491
95- for ( let id of channelsToUnsubscribe ) {
92+ for ( let chanId of channelsToUnsubscribe ) {
9693 api . send (
9794 JSON . stringify ( {
9895 event : 'unsubscribe' ,
99- chanId : id
96+ chanId,
10097 } )
10198 )
102- delete this . channels [ id ]
99+ delete this . channels [ api . id ] [ chanId ]
103100 }
104101 }
105102
106103 onMessage ( event , api ) {
107104 const json = JSON . parse ( event . data )
108105
109106 if ( json . event === 'subscribed' && json . chanId ) {
110- // console.debug(`[${this.id}] register channel ${json.chanId} (${json.channel}:${json.pair})`)
111- this . channels [ json . chanId ] = {
107+ // console.debug(`[${this.id}.${api.id} ] register channel ${json.chanId} (${json.channel}:${json.pair})`)
108+ this . channels [ api . id ] [ json . chanId ] = {
112109 name : json . channel ,
113- pair : json . pair ,
114- apiId : api . id
110+ pair : json . pair
115111 }
116112 return
117113 }
118114
119- if ( ! this . channels [ json [ 0 ] ] || json [ 1 ] === 'hb' ) {
115+ const chanId = json [ 0 ]
116+
117+ if ( ! this . channels [ api . id ] [ chanId ] || json [ 1 ] === 'hb' ) {
120118 return
121119 }
122120
123- const channel = this . channels [ json [ 0 ] ]
121+ const channel = this . channels [ api . id ] [ chanId ]
124122
125123 if ( ! channel . hasSentInitialMessage ) {
126124 // console.debug(`[${this.id}] skip first payload ${channel.name}:${channel.pair}`)
@@ -240,18 +238,12 @@ class Bitfinex extends Exchange {
240238 } )
241239 }
242240
243- onApiRemoved ( api ) {
244- console . log (
245- `[${ this . id } ] has ${ Object . keys ( this . channels ) . length } channels`
246- )
247-
248- const apiChannels = Object . keys ( this . channels ) . filter (
249- id => this . channels [ id ] . apiId === api . id
250- )
241+ onApiCreated ( api ) {
242+ this . channels [ api . id ] = { }
243+ }
251244
252- for ( const id of apiChannels ) {
253- delete this . channels [ id ]
254- }
245+ onApiRemoved ( api ) {
246+ delete this . channels [ api . id ]
255247 }
256248}
257249
0 commit comments