AgentSkillsCN

cairo-contract-functions

当请求涉及在 Cairo 中定义或触发事件时,讲解 Starknet 合约事件、事件枚举以及事件发射机制。

SKILL.md
--- frontmatter
name: cairo-contract-functions
description: Explain Starknet contract entry points (external, view, constructor, l1 handler) and ABI configuration; use when a request involves defining or exposing contract functions in Cairo.

Cairo Contract Functions

Overview

Guide how to define contract entry points and control ABI exposure in Cairo.

Quick Use

  • Read references/contract-functions.md before answering.
  • Use #[starknet::interface] with #[abi(embed_v0)] for standard ABI definitions.
  • Use self: ContractState for view, ref self: ContractState for state-mutating entry points.

Response Checklist

  • Mark constructors with #[constructor] and L1 handlers with #[l1_handler].
  • Use #[external(v0)] for public entry points if using per-item ABI.
  • Explain that view functions are not enforced by the protocol.

Example Requests

  • "How do I define a view function vs external function?"
  • "Where do I put a constructor in a Cairo contract?"
  • "How do I expose a function in the ABI?"