aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/data_types/events/exchange_events.ts
diff options
context:
space:
mode:
authorAlex Browne <stephenalexbrowne@gmail.com>2018-09-26 07:03:54 +0800
committerAlex Browne <stephenalexbrowne@gmail.com>2018-12-05 06:24:06 +0800
commitb0de2a388fc7079bc45c7886b002420783021416 (patch)
treebc8c255fce21f2cbd3f45d375d3d1fd59dbfe45b /packages/pipeline/src/data_types/events/exchange_events.ts
parent40610830da70ae406227e80c700efea11042ba68 (diff)
downloaddexon-sol-tools-b0de2a388fc7079bc45c7886b002420783021416.tar
dexon-sol-tools-b0de2a388fc7079bc45c7886b002420783021416.tar.gz
dexon-sol-tools-b0de2a388fc7079bc45c7886b002420783021416.tar.bz2
dexon-sol-tools-b0de2a388fc7079bc45c7886b002420783021416.tar.lz
dexon-sol-tools-b0de2a388fc7079bc45c7886b002420783021416.tar.xz
dexon-sol-tools-b0de2a388fc7079bc45c7886b002420783021416.tar.zst
dexon-sol-tools-b0de2a388fc7079bc45c7886b002420783021416.zip
Implement scraping and parsing exchange CancelUpTo events
Diffstat (limited to 'packages/pipeline/src/data_types/events/exchange_events.ts')
-rw-r--r--packages/pipeline/src/data_types/events/exchange_events.ts30
1 files changed, 26 insertions, 4 deletions
diff --git a/packages/pipeline/src/data_types/events/exchange_events.ts b/packages/pipeline/src/data_types/events/exchange_events.ts
index cc4332f6f..763a141ea 100644
--- a/packages/pipeline/src/data_types/events/exchange_events.ts
+++ b/packages/pipeline/src/data_types/events/exchange_events.ts
@@ -1,18 +1,24 @@
-import { ExchangeCancelEventArgs, ExchangeEventArgs, ExchangeFillEventArgs } from '@0xproject/contract-wrappers';
+import {
+ ExchangeCancelEventArgs,
+ ExchangeCancelUpToEventArgs,
+ ExchangeEventArgs,
+ ExchangeFillEventArgs,
+} from '@0xproject/contract-wrappers';
import { assetDataUtils } from '@0xproject/order-utils';
import { AssetProxyId, ERC721AssetData } from '@0xproject/types';
import { BigNumber } from '@0xproject/utils';
-import { LogEntry, LogWithDecodedArgs } from 'ethereum-types';
+import { LogWithDecodedArgs } from 'ethereum-types';
import * as R from 'ramda';
import { artifacts } from '../../artifacts';
import { EventsResponse } from '../../data_sources/etherscan';
import { ExchangeCancelEvent } from '../../entities/ExchangeCancelEvent';
+import { ExchangeCancelUpToEvent } from '../../entities/ExchangeCancelUpToEvent';
import { ExchangeFillEvent } from '../../entities/ExchangeFillEvent';
import { convertResponseToLogEntry, decodeLogEntry } from './event_utils';
-export type ExchangeEventEntity = ExchangeFillEvent | ExchangeCancelEvent;
+export type ExchangeEventEntity = ExchangeFillEvent | ExchangeCancelEvent | ExchangeCancelUpToEvent;
const exchangeContractAbi = artifacts.Exchange.compilerOutput.abi;
@@ -27,7 +33,7 @@ export function parseExchangeEvents(rawEventsResponse: EventsResponse): Exchange
}
export function shouldIncludeLogEntry(logEntry: LogWithDecodedArgs<ExchangeEventArgs>): boolean {
- if (!R.contains(logEntry.event, ['Fill', 'Cancel'])) {
+ if (!R.contains(logEntry.event, ['Fill', 'Cancel', 'CancelUpTo'])) {
return false;
} else if (logEntry.logIndex == null || isNaN(logEntry.logIndex)) {
return false;
@@ -41,6 +47,8 @@ export function _convertToEntity(eventLog: LogWithDecodedArgs<ExchangeEventArgs>
return _convertToExchangeFillEvent(eventLog as LogWithDecodedArgs<ExchangeFillEventArgs>);
case 'Cancel':
return _convertToExchangeCancelEvent(eventLog as LogWithDecodedArgs<ExchangeCancelEventArgs>);
+ case 'CancelUpTo':
+ return _convertToExchangeCancelUpToEvent(eventLog as LogWithDecodedArgs<ExchangeCancelUpToEventArgs>);
default:
throw new Error('unexpected eventLog.event type: ' + eventLog.event);
}
@@ -109,6 +117,20 @@ export function _convertToExchangeCancelEvent(
return exchangeCancelEvent;
}
+export function _convertToExchangeCancelUpToEvent(
+ eventLog: LogWithDecodedArgs<ExchangeCancelUpToEventArgs>,
+): ExchangeCancelUpToEvent {
+ const exchangeCancelUpToEvent = new ExchangeCancelUpToEvent();
+ exchangeCancelUpToEvent.logIndex = eventLog.logIndex as number;
+ exchangeCancelUpToEvent.address = eventLog.address as string;
+ exchangeCancelUpToEvent.rawData = eventLog.data as string;
+ exchangeCancelUpToEvent.blockNumber = eventLog.blockNumber as number;
+ exchangeCancelUpToEvent.makerAddress = eventLog.args.makerAddress.toString();
+ exchangeCancelUpToEvent.senderAddress = eventLog.args.senderAddress.toString();
+ exchangeCancelUpToEvent.orderEpoch = eventLog.args.orderEpoch.toString();
+ return exchangeCancelUpToEvent;
+}
+
function bigNumbertoStringOrNull(n: BigNumber): string | null {
if (n == null) {
return null;