diff --git a/.eslintignore b/.eslintignore index 5b0ec4f..f06235c 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,2 @@ node_modules dist -*.js diff --git a/.eslintrc.json b/.eslintrc.json index 6687bcd..f00176a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -17,13 +17,7 @@ ], "rules": { "indent": ["error", 2, { "SwitchCase": 1 }], - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/explicit-module-boundary-types": [ - "warn", - { - "allowArgumentsExplicitlyTypedAsAny": true - } - ] + "@typescript-eslint/explicit-module-boundary-types": "warn" }, - "ignorePatterns": ["dist", "node_modules", "*.js"] + "ignorePatterns": ["dist", "node_modules"] } diff --git a/src/data-generator.ts b/src/data-generator.ts index 0666ad9..383b539 100644 --- a/src/data-generator.ts +++ b/src/data-generator.ts @@ -1,5 +1,7 @@ import * as fs from 'fs'; +const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; + interface VerifiedParticipant { attestation: { payload: { @@ -19,30 +21,31 @@ interface VerifiedParticipant { role: string; } -interface BlockData { +export interface BlockData { hash: string; number: number; timestamp: number; } -interface PointLockedEvent { +export interface PointLockedEvent { __typename: 'PointLockedEvent'; azimuth_id: string; point: string; lock_period: number; } -interface LockdropClosedEvent { +export interface LockdropClosedEvent { __typename: 'LockdropClosedEvent'; ok: boolean; } -interface EventInRange { +export interface EventInRange { block: BlockData; + contract: string; event: PointLockedEvent | LockdropClosedEvent; } -interface GeneratedData { +export interface GeneratedData { data: { eventsInRange: EventInRange[]; }; @@ -114,6 +117,7 @@ export function generateDataFromParticipants (verifiedParticipantsPath: string): const event: EventInRange = { block, + contract: ZERO_ADDRESS, event: { __typename: 'PointLockedEvent', azimuth_id: azimuthId, @@ -129,6 +133,7 @@ export function generateDataFromParticipants (verifiedParticipantsPath: string): if (latestBlock) { events.push({ block: latestBlock, + contract: ZERO_ADDRESS, event: { __typename: 'LockdropClosedEvent', ok: true diff --git a/src/index.ts b/src/index.ts index 23c08c1..3a6152d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -15,7 +15,7 @@ async function startServer () { await server.start(); const app = express(); - server.applyMiddleware({ app: app as any }); + server.applyMiddleware({ app }); const PORT = process.env.PORT || 6000; diff --git a/src/resolvers.ts b/src/resolvers.ts index 583f346..f6c16c1 100644 --- a/src/resolvers.ts +++ b/src/resolvers.ts @@ -1,9 +1,14 @@ import * as fs from 'fs'; import * as path from 'path'; -import { generateDataFromParticipants, saveGeneratedData } from './data-generator'; +import { + generateDataFromParticipants, + saveGeneratedData, + type GeneratedData, + type EventInRange +} from './data-generator'; -function loadOrGenerateData (): any { +function loadOrGenerateData (): GeneratedData { const outputDir = process.env.GENERATED_WATCHER_EVENTS_OUTPUT_PATH || path.join(process.cwd(), 'generated'); // Ensure output directory exists @@ -39,10 +44,10 @@ const data = loadOrGenerateData(); export const resolvers = { Query: { - eventsInRange: (_: any, args: { fromBlockNumber: number; toBlockNumber: number; name?: string }): any[] => { + eventsInRange: (_: unknown, args: { fromBlockNumber: number; toBlockNumber: number; name?: string }): EventInRange[] => { const events = data.data.eventsInRange; - return events.filter((event: any) => { + return events.filter((event: EventInRange) => { const blockNumber = event.block.number; const inRange = blockNumber >= args.fromBlockNumber && blockNumber <= args.toBlockNumber;