AgentSkillsCN

cairo-components

当请求涉及调试或理解 Cairo 中生成的组件代码时,讲解组件在底层的展开方式,包括 HasComponent 与 ComponentState 等概念。

SKILL.md
--- frontmatter
name: cairo-components
description: Explain Starknet components, embedding into contracts, and component interfaces; use when a request involves reusable contract logic or component-based design in Cairo.

Cairo Components

Overview

Explain how to define, embed, and use components to share contract logic safely.

Quick Use

  • Read references/components.md before answering.
  • Use #[starknet::component] and component! for embedding.
  • Show both embeddable external functions and internal functions.

Response Checklist

  • Define component storage with #[storage] and an Event enum.
  • Use #[embeddable_as] on impls to expose entry points.
  • Embed component storage and events in the host contract.
  • Add #[abi(embed_v0)] impl aliases when embedding.

Example Requests

  • "How do I create a reusable component?"
  • "How do I embed a component into a contract?"
  • "What is the difference between embeddable and internal component functions?"