mirror of
https://github.com/0xShay/ticketchain.git
synced 2026-01-11 21:23:24 +00:00
Merge pull request #46 from Ayush272002/bug-usd
Fetch events on homepage and abstract out files
This commit is contained in:
@@ -60,7 +60,7 @@ export const createEvent = async ({
|
||||
description,
|
||||
location,
|
||||
capacity,
|
||||
ethers.utils.parseEther(ticketPrice.toString()),
|
||||
Math.floor(ticketPrice * 100),
|
||||
Math.floor(startDate.getTime() / 1000),
|
||||
Math.floor(endDate.getTime() / 1000),
|
||||
images
|
||||
|
||||
@@ -53,7 +53,7 @@ export const fetchEventDetails = async ({
|
||||
name: eventData.name,
|
||||
date: eventData.eventStartDate.toNumber(),
|
||||
location: eventData.location,
|
||||
ticketPrice: eventData.ticketPrice.div(ethers.BigNumber.from("1000000000000000000")).toNumber() / 100,
|
||||
ticketPrice: eventData.ticketPrice.toNumber() / 100,
|
||||
description: eventData.description,
|
||||
capacity: eventData.capacity.toNumber(),
|
||||
ticketsSold: eventData.ticketsSold.toNumber(),
|
||||
|
||||
53
lib/fetchEvents.ts
Normal file
53
lib/fetchEvents.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { ethers } from "ethers";
|
||||
import { getContract } from "./ethers";
|
||||
|
||||
interface Event {
|
||||
eventId: number;
|
||||
name: string;
|
||||
description: string;
|
||||
location: string;
|
||||
capacity: number;
|
||||
ticketsSold: number;
|
||||
ticketPrice: number;
|
||||
eventStartDate: number;
|
||||
eventEndDate: number;
|
||||
images: string[];
|
||||
eventHost: string;
|
||||
}
|
||||
|
||||
export const fetchEvents: () => Promise<Event[] | undefined> = async () => {
|
||||
try {
|
||||
console.log('Starting events call');
|
||||
if (typeof window.ethereum === 'undefined') {
|
||||
console.error('Ethereum provider not found');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Connecting to contract');
|
||||
const contract = getContract();
|
||||
const eventCount = await contract.eventCounter();
|
||||
const eventsData: Event[] = [];
|
||||
|
||||
for (let i = 0; i < eventCount; i++) {
|
||||
const event = await contract.events(i);
|
||||
const images = await contract.getEventImages(i);
|
||||
eventsData.push({
|
||||
eventId: i,
|
||||
name: event.name,
|
||||
description: event.description,
|
||||
location: event.location,
|
||||
capacity: event.capacity.toNumber(),
|
||||
ticketsSold: event.ticketsSold.toNumber(),
|
||||
ticketPrice: event.ticketPrice.toNumber() / 100,
|
||||
eventStartDate: event.eventStartDate.toNumber(),
|
||||
eventEndDate: event.eventEndDate.toNumber(),
|
||||
images: images,
|
||||
eventHost: event.eventHost,
|
||||
});
|
||||
}
|
||||
|
||||
return eventsData;
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch events:', error);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user