= ({
{eventDetails.description}
- Location:
{eventDetails.location}
- Date:
{eventDetails.date}
- Host:
{eventDetails.host}
+
+ Location:
+
+ {eventDetails.location}
+
+
+
+ Date:
+
+ {eventDetails.date}
+
+
+
+ Host:
+
+ {eventDetails.host}
+
{eventDetails.ticketsSold / eventDetails.capacity >= 0.9 && (
Limited Tickets Remaining!
diff --git a/contracts/EventManager.sol b/contracts/EventManager.sol
index b19b5ba..63c0122 100644
--- a/contracts/EventManager.sol
+++ b/contracts/EventManager.sol
@@ -194,4 +194,8 @@ contract EventManager {
transferTicketForce(_ticketId, _to);
}
+ function getUserTickets(address _user) public view returns (uint256[] memory _ticketIds) {
+ return userTickets[_user];
+ }
+
}
diff --git a/contracts/EventManagerABI.json b/contracts/EventManagerABI.json
index d22a78d..d69ecfa 100644
--- a/contracts/EventManagerABI.json
+++ b/contracts/EventManagerABI.json
@@ -1,9 +1,4 @@
[
- {
- "inputs": [],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
{
"anonymous": false,
"inputs": [
@@ -152,25 +147,6 @@
"stateMutability": "payable",
"type": "function"
},
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_cents",
- "type": "uint256"
- }
- ],
- "name": "centsToFlare",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "_flr",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
{
"inputs": [
{
@@ -225,6 +201,66 @@
"stateMutability": "nonpayable",
"type": "function"
},
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_ticketId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "transferTicket",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_ticketId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "transferTicketFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_cents",
+ "type": "uint256"
+ }
+ ],
+ "name": "centsToFlare",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "_flr",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
{
"inputs": [],
"name": "eventCounter",
@@ -269,9 +305,9 @@
"type": "uint64"
},
{
- "internalType": "uint256",
+ "internalType": "uint64",
"name": "ticketsSold",
- "type": "uint256"
+ "type": "uint64"
},
{
"internalType": "uint64",
@@ -419,6 +455,25 @@
"stateMutability": "view",
"type": "function"
},
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ }
+ ],
+ "name": "getUserTickets",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "_ticketIds",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
{
"inputs": [],
"name": "ticketCounter",
@@ -461,42 +516,6 @@
"stateMutability": "view",
"type": "function"
},
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_ticketId",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_to",
- "type": "address"
- }
- ],
- "name": "transferTicket",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_ticketId",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_to",
- "type": "address"
- }
- ],
- "name": "transferTicketFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
{
"inputs": [
{
diff --git a/lib/fetchEventDetails.ts b/lib/fetchEventDetails.ts
index 4c08c3c..7244cb5 100644
--- a/lib/fetchEventDetails.ts
+++ b/lib/fetchEventDetails.ts
@@ -58,8 +58,8 @@ export const fetchEventDetails = async ({
capacity: eventData.capacity.toNumber(),
ticketsSold: eventData.ticketsSold.toNumber(),
imageUrl: eventImages,
- host: eventData.eventHost
- }
+ host: eventData.eventHost,
+ };
} catch (error) {
console.error('Error in createEvent:', error);
// if (error instanceof Error) {
diff --git a/lib/fetchEvents.ts b/lib/fetchEvents.ts
index bc9e03f..40915ec 100644
--- a/lib/fetchEvents.ts
+++ b/lib/fetchEvents.ts
@@ -1,53 +1,53 @@
-import { ethers } from "ethers";
-import { getContract } from "./ethers";
+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;
+ 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 = 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);
+ try {
+ console.log('Starting events call');
+ if (typeof window.ethereum === 'undefined') {
+ console.error('Ethereum provider not found');
+ return;
}
-}
\ No newline at end of file
+
+ 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);
+ }
+};