AgentSkillsCN

cairo-snforge-troubleshooting

当请求涉及在 Cairo 中使用 Starknet 特定类型,如 ContractAddress、StorageAddress、ClassHash、EthAddress、BlockInfo 与 TxInfo 时,讲解这些 Starknet 核心类型的用法。

SKILL.md
--- frontmatter
name: cairo-snforge-troubleshooting
description: Diagnose and fix common snforge test errors including Sierra compilation failures, cost computation cycles, and version mismatches; use when tests fail with cryptic errors even though `scarb build` succeeds.

Cairo snforge Troubleshooting

Overview

Guide debugging snforge test failures, particularly Sierra compilation errors that occur after successful Cairo compilation.

Quick Use

  • Read references/common-errors.md before diagnosing.
  • Check Scarb.toml settings first - enable-gas = false causes many issues.
  • Verify toolchain version compatibility (snforge, universal-sierra-compiler, Cairo).
  • Generic implementations need proper trait bounds.

Response Checklist

  • If error mentions "cycle during cost computation": check enable-gas setting.
  • If error mentions "universal-sierra-compiler": check version compatibility.
  • If generic code fails: ensure +Drop<T>, +Copy<T> bounds and struct derives.
  • If scarb build passes but scarb test fails: issue is test-specific compilation.

Common Error Patterns

"unexpected cycle during cost computation"

Cause: enable-gas = false in [cairo] section of Scarb.toml Fix: Remove enable-gas = false or set to true

"Error while compiling Sierra"

Cause: Version mismatch between Cairo and universal-sierra-compiler Fix: Run snfoundryup to update toolchain

Generic impl compilation issues

Cause: Missing trait bounds on generic implementations Fix: Add +Drop<T>, +Copy<T> to impl and #[derive(Drop, Copy)] to structs

Example Requests

  • "My tests fail with 'unexpected cycle during cost computation'"
  • "snforge test fails but scarb build works"
  • "universal-sierra-compiler error after Cairo upgrade"