Make order watcher react to new etherToken events

This commit is contained in:
Leonid Logvinov
2017-12-19 14:30:37 +01:00
parent e92d6ff84f
commit b829d55752

View File

@@ -12,6 +12,8 @@ import {
ApprovalContractEventArgs, ApprovalContractEventArgs,
BlockParamLiteral, BlockParamLiteral,
ContractEventArgs, ContractEventArgs,
DepositContractEventArgs,
EtherTokenEvents,
ExchangeContractErrs, ExchangeContractErrs,
ExchangeEvents, ExchangeEvents,
LogCancelContractEventArgs, LogCancelContractEventArgs,
@@ -24,6 +26,7 @@ import {
SignedOrder, SignedOrder,
TokenEvents, TokenEvents,
TransferContractEventArgs, TransferContractEventArgs,
WithdrawalContractEventArgs,
ZeroExError, ZeroExError,
} from '../types'; } from '../types';
import {AbiDecoder} from '../utils/abi_decoder'; import {AbiDecoder} from '../utils/abi_decoder';
@@ -243,6 +246,36 @@ export class OrderStateWatcher {
} }
break; break;
} }
case EtherTokenEvents.Deposit:
{
// Invalidate cache
const args = decodedLog.args as DepositContractEventArgs;
this._balanceAndProxyAllowanceLazyStore.deleteBalance(decodedLog.address, args._owner);
// Revalidate orders
makerToken = decodedLog.address;
makerAddress = args._owner;
if (!_.isUndefined(this._dependentOrderHashes[makerAddress]) &&
!_.isUndefined(this._dependentOrderHashes[makerAddress][makerToken])) {
const orderHashes = Array.from(this._dependentOrderHashes[makerAddress][makerToken]);
await this._emitRevalidateOrdersAsync(orderHashes);
}
break;
}
case EtherTokenEvents.Withdrawal:
{
// Invalidate cache
const args = decodedLog.args as WithdrawalContractEventArgs;
this._balanceAndProxyAllowanceLazyStore.deleteBalance(decodedLog.address, args._owner);
// Revalidate orders
makerToken = decodedLog.address;
makerAddress = args._owner;
if (!_.isUndefined(this._dependentOrderHashes[makerAddress]) &&
!_.isUndefined(this._dependentOrderHashes[makerAddress][makerToken])) {
const orderHashes = Array.from(this._dependentOrderHashes[makerAddress][makerToken]);
await this._emitRevalidateOrdersAsync(orderHashes);
}
break;
}
case ExchangeEvents.LogFill: case ExchangeEvents.LogFill:
{ {
// Invalidate cache // Invalidate cache