AgentSkillsCN

cairo-contract-events

当请求涉及声明或部署合约,或希望理解 Cairo 中的类哈希时,讲解 Starknet 合约类与实例、类哈希、合约部署与升级模式等知识。

SKILL.md
--- frontmatter
name: cairo-contract-events
description: Explain Starknet contract events, event enums, and emitting events; use when a request involves defining or emitting events in Cairo.

Cairo Contract Events

Overview

Explain how to define events and emit them from Cairo contracts.

Quick Use

  • Read references/contract-events.md before answering.
  • Define an Event enum with #[event] and #[derive(starknet::Event)].
  • Mark indexed fields with #[key].

Response Checklist

  • Emit events with self.emit(Event::Variant(...)).
  • Use struct variants to keep event fields clear and typed.
  • Use #[key] for fields that should be indexed.

Example Requests

  • "How do I emit an event from a contract?"
  • "What does #[key] do on an event field?"
  • "How do I define multiple event types?"