aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/index.ts
diff options
context:
space:
mode:
authorAlex Browne <stephenalexbrowne@gmail.com>2018-09-20 08:30:34 +0800
committerFred Carlsen <fred@sjelfull.no>2018-12-13 01:12:01 +0800
commit90e1028d2fd154b8c637139145a2dc1c6999d585 (patch)
treefca2595ce298b3a69b07e8c510e940bcfd6eb12c /packages/pipeline/src/index.ts
parented3737c1f14182f75815d2d7d761b3c84602a5c6 (diff)
downloaddexon-0x-contracts-90e1028d2fd154b8c637139145a2dc1c6999d585.tar.gz
dexon-0x-contracts-90e1028d2fd154b8c637139145a2dc1c6999d585.tar.zst
dexon-0x-contracts-90e1028d2fd154b8c637139145a2dc1c6999d585.zip
Add typeorm and begin inserting database records
Diffstat (limited to 'packages/pipeline/src/index.ts')
-rw-r--r--packages/pipeline/src/index.ts38
1 files changed, 35 insertions, 3 deletions
diff --git a/packages/pipeline/src/index.ts b/packages/pipeline/src/index.ts
index eccb24d18..d70ec3e3e 100644
--- a/packages/pipeline/src/index.ts
+++ b/packages/pipeline/src/index.ts
@@ -1,13 +1,45 @@
-import { Etherscan } from './data-sources/etherscan';
+import { ExchangeFillEventArgs } from '@0xproject/contract-wrappers';
+import { LogWithDecodedArgs } from 'ethereum-types';
+import 'reflect-metadata';
+import { createConnection } from 'typeorm';
import { artifacts } from './artifacts';
+import { Etherscan } from './data-sources/etherscan';
+import { ExchangeFillEvent } from './entities/ExchangeFillEvent';
+import { config } from './ormconfig';
const etherscan = new Etherscan(process.env.ETHERSCAN_API_KEY as string);
(async () => {
- const events = await etherscan.getContractEventsAsync(
+ const connection = await createConnection(config);
+ const repository = connection.getRepository(ExchangeFillEvent);
+ console.log(`found ${await repository.count()} existing fill events`);
+ const eventLogs = await etherscan.getContractEventsAsync(
'0x4f833a24e1f95d70f028921e27040ca56e09ab0b',
artifacts.Exchange.compilerOutput.abi,
);
- console.log(events);
+ for (const eventLog of eventLogs) {
+ if (eventLog.event !== 'Fill') {
+ continue;
+ }
+ const fillEventLog = eventLog as LogWithDecodedArgs<ExchangeFillEventArgs>;
+ const exchangeFillEvent = new ExchangeFillEvent();
+ exchangeFillEvent.logIndex = fillEventLog.logIndex as number;
+ exchangeFillEvent.address = fillEventLog.address as string;
+ exchangeFillEvent.rawData = fillEventLog.data as string;
+ exchangeFillEvent.blockNumber = fillEventLog.blockNumber as number;
+ exchangeFillEvent.makerAddress = fillEventLog.args.makerAddress.toString();
+ exchangeFillEvent.takerAddress = fillEventLog.args.takerAddress.toString();
+ exchangeFillEvent.feeRecepientAddress = fillEventLog.args.feeRecipientAddress;
+ exchangeFillEvent.senderAddress = fillEventLog.args.senderAddress;
+ exchangeFillEvent.makerAssetFilledAmount = fillEventLog.args.makerAssetFilledAmount.toString();
+ exchangeFillEvent.takerAssetFilledAmount = fillEventLog.args.takerAssetFilledAmount.toString();
+ exchangeFillEvent.makerFeePaid = fillEventLog.args.makerFeePaid.toString();
+ exchangeFillEvent.takerFeePaid = fillEventLog.args.takerFeePaid.toString();
+ exchangeFillEvent.orderHash = fillEventLog.args.orderHash;
+ exchangeFillEvent.makerAssetData = fillEventLog.args.makerAssetData;
+ exchangeFillEvent.takerAssetData = fillEventLog.args.takerAssetData;
+ await repository.save(exchangeFillEvent);
+ }
+ console.log(`now ${await repository.count()} total fill events`);
})();