Skip to content

Commit ff250ee

Browse files
committed
Added swtich in transaction subscription
1 parent 379e43a commit ff250ee

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/infrastructure/Listener.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
import { Observable, of, OperatorFunction, Subject } from 'rxjs';
18-
import { filter, flatMap, map, share } from 'rxjs/operators';
18+
import { filter, flatMap, map, share, switchMap } from 'rxjs/operators';
1919
import { BlockInfoDTO } from 'symbol-openapi-typescript-fetch-client';
2020
import * as WebSocket from 'ws';
2121
import { Address } from '../model/account/Address';
@@ -284,9 +284,16 @@ export class Listener implements IListener {
284284
return this.messageSubject.asObservable().pipe(
285285
filter((listenerMessage) => listenerMessage.channelName === channel),
286286
filter((listenerMessage) => listenerMessage.message instanceof Transaction),
287-
map((listenerMessage) => listenerMessage.message as T),
288-
filter((transaction) => this.filterHash(transaction, transactionHash)),
289-
this.filterByNotifyAccount(address),
287+
switchMap((_) => {
288+
const transactionObservable = of(_.message as T).pipe(
289+
filter((transaction) => this.filterHash(transaction, transactionHash)),
290+
);
291+
if (_.channelParam.toUpperCase() === address.plain()) {
292+
return transactionObservable;
293+
} else {
294+
return transactionObservable.pipe(this.filterByNotifyAccount(address));
295+
}
296+
}),
290297
);
291298
}
292299

0 commit comments

Comments
 (0)