Background
The Event struct already has cancel() method, is_cancelled: bool field,
and several downstream functions (e.g. create_match, join_event) guard
against cancelled events. The error code EventError::EventCancelled is also
defined.
Goal
Add cancel_event(env, caller, event_id) that marks an event as cancelled
(only the event creator may do this, only before finalization).
Tasks
- Add
EventError::AlreadyFinalized (if not already present) and
- Add
pub fn cancel_event(env: &Env, caller: Address, event_id: u64) -> Result<(), EventError> in src/event.rs:
- Wire into
lib.rs:
- Add tests in a new
tests/cancel_event_tests.rs:
Acceptance Criteria
- Only the event creator can cancel; cancellation is irreversible.
- Cancelled events block joins, match creation, and predictions.
- A contract event
("event", "cancelled") is emitted on success.
Files
contracts/creator-event-manager/src/event.rs,
contracts/creator-event-manager/src/lib.rs,
contracts/creator-event-manager/tests/cancel_event_tests.rs,
Background
The
Eventstruct already hascancel()method,is_cancelled: boolfield,and several downstream functions (e.g.
create_match,join_event) guardagainst cancelled events. The error code
EventError::EventCancelledis alsodefined.
Goal
Add
cancel_event(env, caller, event_id)that marks an event as cancelled(only the event creator may do this, only before finalization).
Tasks
EventError::AlreadyFinalized(if not already present) andpub fn cancel_event(env: &Env, caller: Address, event_id: u64) -> Result<(), EventError>insrc/event.rs:lib.rs:tests/cancel_event_tests.rs:Acceptance Criteria
("event", "cancelled")is emitted on success.Files
contracts/creator-event-manager/src/event.rs,contracts/creator-event-manager/src/lib.rs,contracts/creator-event-manager/tests/cancel_event_tests.rs,