aboutsummaryrefslogtreecommitdiffstats
path: root/src/contract_wrappers/contract_wrapper.ts
diff options
context:
space:
mode:
authorJacob Evans <jacob@dekz.net>2017-11-12 00:01:59 +0800
committerJacob Evans <jacob@dekz.net>2017-11-12 00:01:59 +0800
commit4ae9482d506ccdf028fcd39bbaf652bbcbef52e8 (patch)
tree3b133b11e8074a75ceafe006b6166a41022a634a /src/contract_wrappers/contract_wrapper.ts
parent4262ac3c8966468b343c6467e0e9da85ef25be05 (diff)
downloaddexon-0x-contracts-4ae9482d506ccdf028fcd39bbaf652bbcbef52e8.tar.gz
dexon-0x-contracts-4ae9482d506ccdf028fcd39bbaf652bbcbef52e8.tar.zst
dexon-0x-contracts-4ae9482d506ccdf028fcd39bbaf652bbcbef52e8.zip
Clean up subscription state.
In the case of an exception, keep the state correct between contract wrapper, exchange wrapper and token wrapper.
Diffstat (limited to 'src/contract_wrappers/contract_wrapper.ts')
-rw-r--r--src/contract_wrappers/contract_wrapper.ts6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/contract_wrappers/contract_wrapper.ts b/src/contract_wrappers/contract_wrapper.ts
index a02465982..5bdc66b3b 100644
--- a/src/contract_wrappers/contract_wrapper.ts
+++ b/src/contract_wrappers/contract_wrapper.ts
@@ -50,6 +50,12 @@ export class ContractWrapper {
this._filterCallbacks[filterToken] = callback;
return filterToken;
}
+ protected unsubscribeAll(): void {
+ const filterTokens = _.keys(this._filterCallbacks);
+ _.each(filterTokens, filterToken => {
+ this._unsubscribe(filterToken);
+ });
+ }
protected _unsubscribe(filterToken: string, err?: Error): void {
if (_.isUndefined(this._filters[filterToken])) {
throw new Error(ZeroExError.SubscriptionNotFound);