Fix USD 1e18 bugs

This commit is contained in:
2024-10-27 06:24:45 +00:00
parent 935f0578a3
commit 9d460935c7
3 changed files with 4 additions and 6 deletions

View File

@@ -19,8 +19,7 @@ const eventSchema = z
.refine(Number.isInteger, { message: 'Capacity must be an integer' }), .refine(Number.isInteger, { message: 'Capacity must be an integer' }),
ticketPrice: z ticketPrice: z
.number({ invalid_type_error: 'Ticket price must be a number' }) .number({ invalid_type_error: 'Ticket price must be a number' })
.min(0, { message: 'Ticket price must be at least 0' }) .min(0, { message: 'Ticket price must be at least 0' }),
.refine(Number.isInteger, { message: 'Ticket price must be in cents' }),
location: z.string().min(1, { message: 'Location is required' }), location: z.string().min(1, { message: 'Location is required' }),
eventStartTime: z.preprocess( eventStartTime: z.preprocess(
(val) => (val) =>
@@ -128,9 +127,8 @@ const EventForm = ({ onSubmit }: EventFormProps) => {
{/* Ticket Price Field */} {/* Ticket Price Field */}
<div> <div>
<Label htmlFor="ticketPrice">Ticket Price (in USD cents)</Label> <Label htmlFor="ticketPrice">Ticket Price (in USD)</Label>
<Input <Input
type="number"
id="ticketPrice" id="ticketPrice"
{...register('ticketPrice', { valueAsNumber: true })} {...register('ticketPrice', { valueAsNumber: true })}
/> />

View File

@@ -60,7 +60,7 @@ export const createEvent = async ({
description, description,
location, location,
capacity, capacity,
ethers.utils.parseEther(ticketPrice.toString()), Math.floor(ticketPrice * 100),
Math.floor(startDate.getTime() / 1000), Math.floor(startDate.getTime() / 1000),
Math.floor(endDate.getTime() / 1000), Math.floor(endDate.getTime() / 1000),
images images

View File

@@ -53,7 +53,7 @@ export const fetchEventDetails = async ({
name: eventData.name, name: eventData.name,
date: eventData.eventStartDate.toNumber(), date: eventData.eventStartDate.toNumber(),
location: eventData.location, location: eventData.location,
ticketPrice: eventData.ticketPrice.div(ethers.BigNumber.from("1000000000000000000")).toNumber() / 100, ticketPrice: eventData.ticketPrice.toNumber() / 100,
description: eventData.description, description: eventData.description,
capacity: eventData.capacity.toNumber(), capacity: eventData.capacity.toNumber(),
ticketsSold: eventData.ticketsSold.toNumber(), ticketsSold: eventData.ticketsSold.toNumber(),