技能标识:setup-cairo-contracts
Set up a Cairo smart contract project with OpenZeppelin Contracts for Cairo on Starknet. Use when users need to: (1) create a new Scarb/Starknet project, (2) add OpenZeppelin Contracts for Cairo dependencies to Scarb.toml, (3) configure individual or umbrella OpenZeppelin packages, or (4) understand Cairo import conventions and component patterns for OpenZeppelin.
安装工具链并创建项目:
bash
curl --proto =https --tlsv1.2 -sSf https://sh.starkup.sh | sh
scarb new my_project --test-runner=starknet-foundry
这将搭建一个完整的 Starknet 项目,并预配置 snforge 测试框架。
在添加依赖前,请从 https://docs.openzeppelin.com/contracts-cairo 查询当前版本。添加到 Scarb.toml:
完整库(伞包):
toml
[dependencies]
openzeppelin = <版本号>
独立包(构建速度更快——仅编译你使用的部分):
toml
[dependencies]
openzeppelin_token = <版本号>
openzeppelin_access = <版本号>
可用的独立包:openzeppelinaccess、openzeppelinaccount、openzeppelinfinance、openzeppelingovernance、openzeppelininterfaces、openzeppelinintrospection、openzeppelinmerkletree、openzeppelinpresets、openzeppelinsecurity、openzeppelintoken、openzeppelinupgrades、openzeppelin_utils。
openzeppelininterfaces 和 openzeppelinutils 是独立版本管理的。请查阅文档获取其具体版本号。所有其他包共享相同的版本号。
导入路径取决于声明的依赖类型:
cairo
// 独立包
use openzeppelin_token::erc20::{ERC20Component, ERC20HooksEmptyImpl};
use openzeppelin_access::ownable::OwnableComponent;
use openzeppelin_upgrades::UpgradeableComponent;
// 伞包等效写法
use openzeppelin::token::erc20::{ERC20Component, ERC20HooksEmptyImpl};
use openzeppelin::access::ownable::OwnableComponent;
use openzeppelin::upgrades::UpgradeableComponent;
组件通过 component! 宏、内嵌实现和子存储进行集成:
cairo
component!(path: ERC20Component, storage: erc20, event: ERC20Event);
#[abi(embed_v0)]
impl ERC20MixinImpl = ERC20Component::ERC20MixinImpl
impl ERC20InternalImpl = ERC20Component::InternalImpl
存储冲突警告: 在组合多个组件时,#[substorage(v0)] 会将组件存储扁平化到合约的命名空间中。如果两个组件使用相同的内部存储变量名,它们将静默共享同一个存储槽,导致状态损坏。请审查你组合的每个组件的源代码,确保各组件之间不存在命名冲突。
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 setup-cairo-contracts-1776078189 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 setup-cairo-contracts-1776078189 技能
skillhub install setup-cairo-contracts-1776078189
文件大小: 1.92 KB | 发布时间: 2026-4-15 14:19