Make order watcher react to new etherToken events
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user