From 5170aed9ecee840f02e90d536921d79582a6425a Mon Sep 17 00:00:00 2001 From: Ikem Peter Date: Sun, 1 Dec 2024 15:20:20 +0100 Subject: [PATCH] rm --- backend/config/events.ts | 7 -- backend/indexer/handlers.ts | 131 ------------------------------------ backend/indexer/index.ts | 69 ------------------- backend/indexer/types.ts | 28 -------- 4 files changed, 235 deletions(-) delete mode 100644 backend/config/events.ts delete mode 100644 backend/indexer/handlers.ts delete mode 100644 backend/indexer/index.ts delete mode 100644 backend/indexer/types.ts diff --git a/backend/config/events.ts b/backend/config/events.ts deleted file mode 100644 index a3bf130..0000000 --- a/backend/config/events.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const events = { - NewEventAdded: "NewEventAdded", //replace with event identify - RegisteredForEvent: "RegisteredForEvent", - EventAttendanceMark: "EventAttendanceMark", - EndEventRegistration: "EndEventRegistration", - RSVPForEvent: "RSVPForEvent" -}; \ No newline at end of file diff --git a/backend/indexer/handlers.ts b/backend/indexer/handlers.ts deleted file mode 100644 index c3d0e19..0000000 --- a/backend/indexer/handlers.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { - NewEventAdded, - RegisteredForEvent, - EventAttendanceMark, - EndEventRegistration, - RSVPForEvent -} from "./types"; -import { FieldElement, v1alpha2 as starknet } from '@apibara/starknet'; -import Event from "../models/Event.js"; -import { uint256 } from 'starknet'; -import { hexToAscii } from "../utils/tohexAscii.js"; - -export async function handleNewEventAdded(event: starknet.IEvent) { - const data = event.data!; - - const eventDetails: NewEventAdded = { - name: hexToAscii(FieldElement.toHex(data[0]).toString()), - event_id: parseInt(uint256 - .uint256ToBN({ - low: FieldElement.toBigInt(data[1]), - high: FieldElement.toBigInt(data[2]), - }) - .toString()), - location: hexToAscii(FieldElement.toHex(data[3]).toString()), - event_owner: FieldElement.toHex(data[4]).toString() - }; - - //Debugging purposes - console.log(eventDetails); - - const eventExists = await Event.findByEventId(eventDetails.event_id); - if (eventExists) { - console.log("Event already exists"); - return; - } - await Event.create(eventDetails); -} - -export async function handleRegisteredForEvent(event: starknet.IEvent) { - const data = event.data!; - - const registeredForEvent: RegisteredForEvent = { - event_id: parseInt(uint256 - .uint256ToBN({ - low: FieldElement.toBigInt(data[0]), - high: FieldElement.toBigInt(data[1]), - }) - .toString()), - event_name: hexToAscii(FieldElement.toHex(data[2]).toString()), - user_address: FieldElement.toHex(data[3]).toString() - }; - - console.log(registeredForEvent); - - const hasRegistered = await Event.isUserRegistered(registeredForEvent.event_id, registeredForEvent.user_address); - if (hasRegistered) { - console.log("User has already registered"); - return; - } - await Event.registerUser(registeredForEvent.event_id, registeredForEvent.user_address); -} - -export async function handleEventAttendanceMark(event: starknet.IEvent) { - const data = event.data!; - - const eventAttendanceMark: EventAttendanceMark = { - event_id: parseInt(uint256 - .uint256ToBN({ - low: FieldElement.toBigInt(data[0]), - high: FieldElement.toBigInt(data[1]), - }) - .toString()), - user_address: FieldElement.toHex(data[2]).toString() - }; - - console.log(eventAttendanceMark); - - const hasMarkedAttendance = await Event.hasUserAttended(eventAttendanceMark.event_id, eventAttendanceMark.user_address); - if (hasMarkedAttendance) { - console.log("User has already marked attendance"); - return; - } - await Event.markAttendance(eventAttendanceMark.event_id, eventAttendanceMark.user_address); -} - -export async function handleEndEventRegistration(event: starknet.IEvent) { - const data = event.data!; - - const endEventRegistration: EndEventRegistration = { - event_id: parseInt(uint256 - .uint256ToBN({ - low: FieldElement.toBigInt(data[0]), - high: FieldElement.toBigInt(data[1]), - }) - .toString()), - event_name: hexToAscii(FieldElement.toHex(data[2]).toString()), - event_owner: FieldElement.toHex(data[3]).toString() - }; - - console.log(endEventRegistration); - - const eventExists = await Event.findByEventId(endEventRegistration.event_id); - if (!eventExists) { - console.log("Event does not exist"); - return; - } - await Event.endRegistration(endEventRegistration.event_id); -} - -export async function handleRSVPForEvent(event: starknet.IEvent) { - const data = event.data!; - - const rsvpForEvent: RSVPForEvent = { - event_id: parseInt(uint256 - .uint256ToBN({ - low: FieldElement.toBigInt(data[0]), - high: FieldElement.toBigInt(data[1]), - }) - .toString()), - attendee_address: FieldElement.toHex(data[2]).toString() - }; - - console.log(rsvpForEvent); - - const hasRSVPed = await Event.hasUserRSVPed(rsvpForEvent.event_id, rsvpForEvent.attendee_address); - if (hasRSVPed) { - console.log("User has already RSVPed"); - return; - } - await Event.addRSVP(rsvpForEvent.event_id, rsvpForEvent.attendee_address); -} \ No newline at end of file diff --git a/backend/indexer/index.ts b/backend/indexer/index.ts deleted file mode 100644 index 29f5aa9..0000000 --- a/backend/indexer/index.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { StreamClient, v1alpha2 } from '@apibara/protocol'; -import { - FieldElement, - Filter, - v1alpha2 as starknet, - StarkNetCursor, -} from '@apibara/starknet'; -import { events } from '../config/events'; -import { - handleNewEventAdded, - handleRegisteredForEvent, - handleEventAttendanceMark, - handleEndEventRegistration, - handleRSVPForEvent, -} from './handlers'; - -const client = new StreamClient({ - url: process.env.DNA_CLIENT_URL!, - clientOptions: { - 'grpc.max_receive_message_length': 100 * 1024 * 1024, // 100MB - }, - token: process.env.DNA_TOKEN, -}); - -// Create filter combining all event handlers -const filter = Filter.create().withHeader({ weak: true }); - -// Map your events to handlers -const eventHandlers: Record Promise> = { - [events.NewEventAdded]: handleNewEventAdded, - [events.RegisteredForEvent]: handleRegisteredForEvent, - [events.EventAttendanceMark]: handleEventAttendanceMark, - [events.EndEventRegistration]: handleEndEventRegistration, - [events.RSVPForEvent]: handleRSVPForEvent, -}; - -// Add all events to filter -Object.keys(eventHandlers).forEach((eventKey) => { - filter.addEvent((event) => - event.withKeys([FieldElement.fromBigInt(BigInt(eventKey))]) - ); -}); - -// Start indexer function -export async function startIndexer() { - client.configure({ - filter: filter.encode(), - batchSize: 1, - finality: v1alpha2.DataFinality.DATA_STATUS_FINALIZED, - cursor: StarkNetCursor.createWithBlockNumber(0), - }); - - for await (const message of client) { - if (message.message === 'data') { - const { data } = message.data!; - for (const item of data) { - const block = starknet.Block.decode(item); - for (const event of block.events) { - if (!event.event) continue; - const eventKey = FieldElement.toHex(event.event.keys![0]); - const handler = eventHandlers[eventKey]; - if (handler) { - await handler(event.event); - } - } - } - } - } -} diff --git a/backend/indexer/types.ts b/backend/indexer/types.ts deleted file mode 100644 index b1f252d..0000000 --- a/backend/indexer/types.ts +++ /dev/null @@ -1,28 +0,0 @@ -export type NewEventAdded = { - name: string; - event_id: number; - location: string; - event_owner: string; -}; - -export type RegisteredForEvent = { - event_id: number; - event_name: string; - user_address: string; -}; - -export type EndEventRegistration = { - event_id: number; - event_name: string; - event_owner: string; -}; - -export type RSVPForEvent = { - event_id: number; - attendee_address: string; -}; - -export type EventAttendanceMark = { - event_id: number; - user_address: string; -};