import {IEventData} from "./EventData/EventData"; import {BlockTransactionString} from "web3-eth"; import {EventType} from "./EventType"; import {TransferEventData} from "./EventData/TransferEventData"; import TransactionLog = Truffle.TransactionLog; export interface IEvent { address: string; blockHash: string; blockNumber: number; transactionHash: string; blockTimestamp: number; blockDate: Date; eventName: string; data?: IEventData; } export class Event implements IEvent{ address: string; blockHash: string; blockNumber: number; transactionHash: string; blockTimestamp: number; blockDate: Date; eventName: string; data?: IEventData; constructor(event: TransactionLog, block: BlockTransactionString) { this.address = event.address; this.blockHash = event.blockHash; this.blockNumber = event.blockNumber; this.transactionHash = event.transactionHash; this.blockTimestamp = Number(block.timestamp); this.blockDate = new Date(this.blockTimestamp * 1000); this.eventName = event.event; if (event.event === EventType.transfer) { this.data = new TransferEventData(event.args) } else { this.data = null; } } }