diff options
author | Alex Browne <stephenalexbrowne@gmail.com> | 2018-09-21 08:25:48 +0800 |
---|---|---|
committer | Fred Carlsen <fred@sjelfull.no> | 2018-12-13 01:12:06 +0800 |
commit | 0dc000183aabab129d6b642eae468ed2996a75c4 (patch) | |
tree | d37a93d8b51a371181bee20c8ad8f9c5bbe42174 /packages/pipeline/src/index.ts | |
parent | 90e1028d2fd154b8c637139145a2dc1c6999d585 (diff) | |
download | dexon-sol-tools-0dc000183aabab129d6b642eae468ed2996a75c4.tar dexon-sol-tools-0dc000183aabab129d6b642eae468ed2996a75c4.tar.gz dexon-sol-tools-0dc000183aabab129d6b642eae468ed2996a75c4.tar.bz2 dexon-sol-tools-0dc000183aabab129d6b642eae468ed2996a75c4.tar.lz dexon-sol-tools-0dc000183aabab129d6b642eae468ed2996a75c4.tar.xz dexon-sol-tools-0dc000183aabab129d6b642eae468ed2996a75c4.tar.zst dexon-sol-tools-0dc000183aabab129d6b642eae468ed2996a75c4.zip |
Add support for decoding asset data
Diffstat (limited to 'packages/pipeline/src/index.ts')
-rw-r--r-- | packages/pipeline/src/index.ts | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/packages/pipeline/src/index.ts b/packages/pipeline/src/index.ts index d70ec3e3e..db26343e0 100644 --- a/packages/pipeline/src/index.ts +++ b/packages/pipeline/src/index.ts @@ -1,4 +1,5 @@ import { ExchangeFillEventArgs } from '@0xproject/contract-wrappers'; +import { assetDataUtils } from '@0xproject/order-utils'; import { LogWithDecodedArgs } from 'ethereum-types'; import 'reflect-metadata'; import { createConnection } from 'typeorm'; @@ -14,32 +15,12 @@ const etherscan = new Etherscan(process.env.ETHERSCAN_API_KEY as string); const connection = await createConnection(config); const repository = connection.getRepository(ExchangeFillEvent); console.log(`found ${await repository.count()} existing fill events`); - const eventLogs = await etherscan.getContractEventsAsync( + const events = await etherscan.getContractEventsAsync( '0x4f833a24e1f95d70f028921e27040ca56e09ab0b', artifacts.Exchange.compilerOutput.abi, ); - 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); + for (const event of events) { + await repository.save(event); } console.log(`now ${await repository.count()} total fill events`); })(); |