用途:在 Starknet 上编写 Cairo 智能合约时提供参考,覆盖合约结构、存储、事件、接口、组件与 OpenZeppelin v3 模式。适用场景包括从零编写新合约、为已有合约添加存储/事件/接口、使用 OpenZeppelin 组件(Ownable、ERC20、ERC721、AccessControl、Upgradeable)、用 embeddable_as 实现组件模式,以及用 Scarb 组织多合约项目。不适用于 Gas 优化、测试与部署,这些分别使用 cairo-optimization、cairo-testing、cairo-deploy。
主要能力:给出合约骨架(#[starknet::contract] 模块、#[storage]、#[event]、#[constructor]、#[abi(embed_v0)]);接口用 #[starknet::interface] 定义在合约模块外,self: @TContractState 为只读,ref self: TContractState 为读写;存储支持 felt252、u128、ContractAddress、bool 及 Map,并建议用复合键元组替代嵌套 Map;事件用 #[key] 标记索引字段;组件采用 OZ v3 的 Mixin 模式,通过 component! 声明、#[substorage(v0)] 与 #[flat] 组合,并用 #[embeddable_as] 编写自定义组件。还列出常见 OZ 组件用法、Scarb.toml 依赖、项目目录结构,以及重入锁、Pausable、构造函数校验等模式。
使用方式:按资料中的代码结构编写合约,依赖通过 Scarb 注册表引入,示例版本为 starknet >=2.12.0 与 openzeppelin_* 3.0.0,最新版本可查 scarbs.dev。
限制:资料未提供安装命令、收费与价格、平台支持范围及实际效果等信息。