Skip to content
This repository has been archived by the owner on May 19, 2023. It is now read-only.

Commit

Permalink
feat: using contract address as confirmations identifier
Browse files Browse the repository at this point in the history
  • Loading branch information
AuHau committed Jun 19, 2020
1 parent c3d3ad2 commit 8d7bb55
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 11 deletions.
5 changes: 4 additions & 1 deletion src/blockchain/event.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ export default class Event extends Model {
@Column(DataType.INTEGER)
targetConfirmation!: number

@Column(DataType.STRING(66))
contractAddress!: string

@Column(DataType.TEXT)
event!: string

Expand All @@ -39,5 +42,5 @@ export default class Event extends Model {
}

export type EventInterface =
Pick<Event, 'blockNumber' | 'transactionHash' | 'logIndex' | 'event' | 'targetConfirmation' | 'content'>
Pick<Event, 'blockNumber' | 'transactionHash' | 'logIndex' | 'contractAddress' | 'event' | 'targetConfirmation' | 'content'>
& { emitted?: boolean }
5 changes: 3 additions & 2 deletions src/blockchain/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ export abstract class BaseEventsEmitter extends AutoStartStopEventEmitter {
const dbEvents = await Event.findAll({
where: {
blockNumber: { [Op.lte]: currentBlock.number - this.confirmations },
event: this.events,
contractAddress: this.contract.options.address,
emitted: false
}
})
Expand Down Expand Up @@ -354,6 +354,7 @@ export abstract class BaseEventsEmitter extends AutoStartStopEventEmitter {
blockNumber: data.blockNumber,
transactionHash: data.transactionHash,
logIndex: data.logIndex,
contractAddress: this.contract.options.address,
event: data.event,
targetConfirmation: this.confirmations,
content: JSON.stringify(data)
Expand Down Expand Up @@ -499,7 +500,7 @@ export class PollingEventsEmitter extends BaseEventsEmitter {

async poll (currentBlock: BlockHeader): Promise<void> {
await this.semaphore.acquire()
this.logger.verbose(`Received new block number ${currentBlock}`)
this.logger.verbose(`Received new block number ${currentBlock.number}`)
try {
const [lastFetchedBlockNumber, lastFetchedBlockHash] = this.blockTracker.getLastFetchedBlock()

Expand Down
2 changes: 1 addition & 1 deletion src/blockchain/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export async function getBlockDate (eth: Eth, blockNumber: number): Promise<Date

export function isServiceInitialized (serviceName: string): boolean {
const blockTracker = getBlockTracker(`${serviceName}.`)
return blockTracker.getLastFetchedBlock() !== undefined
return blockTracker.getLastFetchedBlock()[0] !== undefined
}

export function getEventsEmitterForService (serviceName: string, eth: Eth, contractAbi: AbiItem[]): EventEmitter {
Expand Down
9 changes: 6 additions & 3 deletions src/services/rns/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,12 @@ const rns: CachedService = {
logger.info(`Removed ${offersCount} offers entries, ${soldCount} sold domains, ${transferCount} transfers and ${domainsCount} domains`)

const store = getObject()
delete store['rns.placement.lastFetchedBlock']
delete store['rns.reverse.lastFetchedBlock']
delete store['rns.owner.lastFetchedBlock']
delete store['rns.placement.lastFetchedBlockNumber']
delete store['rns.placement.lastFetchedBlockHash']
delete store['rns.reverse.lastFetchedBlockNumber']
delete store['rns.reverse.lastFetchedBlockHash']
delete store['rns.owner.lastFetchedBlockNumber']
delete store['rns.owner.lastFetchedBlockHash']
}

}
Expand Down
1 change: 1 addition & 0 deletions src/services/storage/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ const storage: CachedService = {

const store = getObject()
delete store['storage.lastFetchedBlockNumber']
delete store['storage.lastFetchedBlockHash']
},

precache
Expand Down
20 changes: 16 additions & 4 deletions src/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,23 @@ import type { Sequelize } from 'sequelize'

export function initStore (sequelize: Sequelize): Promise<void> {
return init(sequelize, {
'storage.lastFetchedBlock': 'json',
'storage.lastFetchedBlockNumber': 'int',
'storage.lastFetchedBlockHash': 'string',
'storage.lastProcessedBlockNumber': 'int',
'storage.lastProcessedBlockHash': 'string',
'rates.lastUpdate': 'int',
'rns.owner.lastFetchedBlock': 'json',
'rns.reverse.lastFetchedBlock': 'json',
'rns.placement.lastFetchedBlock': 'json'
'rns.owner.lastFetchedBlockNumber': 'int',
'rns.owner.lastFetchedBlockHash': 'string',
'rns.reverse.lastFetchedBlockNumber': 'int',
'rns.reverse.lastFetchedBlockHash': 'string',
'rns.placement.lastFetchedBlockNumber': 'int',
'rns.placement.lastFetchedBlockHash': 'string',
'rns.owner.lastProcessedBlockNumber': 'int',
'rns.owner.lastProcessedBlockHash': 'string',
'rns.reverse.lastProcessedBlockNumber': 'int',
'rns.reverse.lastProcessedBlockHash': 'string',
'rns.placement.lastProcessedBlockNumber': 'int',
'rns.placement.lastProcessedBlockHash': 'string'
})
}

Expand Down

0 comments on commit 8d7bb55

Please sign in to comment.