From c9e0b298781ca1522f69cae66ac966a0e4800469 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Thu, 9 Nov 2017 15:44:03 -0500 Subject: Add SubscriptionAlreadyPresent error --- src/mempool/order_state_watcher.ts | 4 ++++ src/types.ts | 1 + 2 files changed, 5 insertions(+) (limited to 'src') diff --git a/src/mempool/order_state_watcher.ts b/src/mempool/order_state_watcher.ts index 63e812054..d0bf5d89c 100644 --- a/src/mempool/order_state_watcher.ts +++ b/src/mempool/order_state_watcher.ts @@ -17,6 +17,7 @@ import { OnOrderStateChangeCallback, ExchangeEvents, TokenEvents, + ZeroExError, } from '../types'; import {Web3Wrapper} from '../web3_wrapper'; @@ -85,6 +86,9 @@ export class OrderStateWatcher { */ public subscribe(callback: OnOrderStateChangeCallback, numConfirmations: number): void { assert.isFunction('callback', callback); + if (!_.isUndefined(this._callbackAsync)) { + throw new Error(ZeroExError.SubscriptionAlreadyPresent); + } this._callbackAsync = callback; this._eventWatcher.subscribe(this._onMempoolEventCallbackAsync.bind(this), numConfirmations); } diff --git a/src/types.ts b/src/types.ts index 969f2e96d..246fd8641 100644 --- a/src/types.ts +++ b/src/types.ts @@ -16,6 +16,7 @@ export enum ZeroExError { OutOfGas = 'OUT_OF_GAS', NoNetworkId = 'NO_NETWORK_ID', SubscriptionNotFound = 'SUBSCRIPTION_NOT_FOUND', + SubscriptionAlreadyPresent = 'SUBSCRIPTION_ALREADY_PRESENT', } export enum InternalZeroExError { -- cgit v1.2.3