Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 23 additions & 16 deletions src/events/ticketverification.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -166,22 +166,7 @@ pub mod TicketVerification {
}

fn verify_ticket_event(ref self: ContractState, ticket_id: u256) -> bool {
let ticket_used = self.ticket_used.read(ticket_id);
let ticket_owner = self.ticket_owners.read(ticket_id);
assert!(ticket_owner == get_caller_address(), "Callet not owner of the ticket");
assert!(!ticket_used, "Ticket already used");

let ticket = self.ticket_events.read(ticket_id);
self.ticket_used.write(ticket_id, true);
self
.emit(
Event::TicketUsed(
TicketUsed {
ticket_id: ticket_id, event_id: ticket, user: get_caller_address()
}
)
);
true
self._verify_ticket_event(ticket_id)
}

fn transfer_ticket(ref self: ContractState, ticket_id: u256, to: ContractAddress) {
Expand Down Expand Up @@ -224,6 +209,28 @@ pub mod TicketVerification {

#[generate_trait]
impl InternalImpl of InternalTrait {
/// @notice Verifies a ticket and marks it as used
/// @param ticket_id The ID of the ticket to verify
/// @return bool True if verification succeeds
fn _verify_ticket_event(ref self: ContractState, ticket_id: u256) -> bool {
let ticket_used = self.ticket_used.read(ticket_id);
let ticket_owner = self.ticket_owners.read(ticket_id);
assert!(ticket_owner == get_caller_address(), "Caller not owner of the ticket");
assert!(!ticket_used, "Ticket already used");
let event_id = self.ticket_events.read(ticket_id);
self.ticket_used.write(ticket_id, true);
self
.emit(
Event::TicketUsed(
TicketUsed {
ticket_id: ticket_id, event_id: event_id, user: get_caller_address(),
},
),
);
true
}


/// @notice Upgrades the contract implementation
/// @param new_class_hash The new class hash to upgrade to
/// @dev Only callable by owner
Expand Down
Loading