diff --git a/src/modules/events/views/EventsPage.vue b/src/modules/events/views/EventsPage.vue index d474983..af0bdc8 100644 --- a/src/modules/events/views/EventsPage.vue +++ b/src/modules/events/views/EventsPage.vue @@ -14,7 +14,7 @@ import PurchaseTicketDialog from '../components/PurchaseTicketDialog.vue' import CreateEventDialog from '../components/CreateEventDialog.vue' import { RefreshCw, User, LogIn, Plus } from 'lucide-vue-next' import { formatEventPrice } from '@/lib/utils/formatting' -import { injectService } from '@/core/di-container' +import { injectService, SERVICE_TOKENS } from '@/core/di-container' import { EVENTS_API_TOKEN } from '../composables/useEvents' import type { CreateEventRequest } from '../types/event' @@ -83,8 +83,18 @@ async function handleCreateEvent(eventData: CreateEventRequest) { throw new Error('Events API not available') } - // Use wallet as admin key for now - in production you'd want proper admin key management - await eventsApi.createEvent(eventData, eventData.wallet) + // Get the preferred wallet's admin key using PaymentService + const paymentService = injectService(SERVICE_TOKENS.PAYMENT_SERVICE) + if (!paymentService) { + throw new Error('Payment service not available') + } + + const adminKey = paymentService.getPreferredWalletAdminKey() + if (!adminKey) { + throw new Error('No wallet admin key available. Please connect a wallet first.') + } + + await eventsApi.createEvent(eventData, adminKey) } function handleEventCreated() {