用途:面向在 StarkNet(以太坊上的免许可 ZK-rollup)上开发 Cairo 智能合约的开发者,梳理语言差异、合约模式、账户抽象、部署与测试流程。
主要能力与事实:合约用 Cairo 编写,经 Scarb 编译为 Sierra,再由排序器编译为 CASM;StarkNet 不兼容 EVM,没有 msg.value/payable/receive,ETH 作为 ERC-20 代币转账;原生类型 felt252 溢出会回绕,安全运算可用 u256;每个账户都是合约,无 EOA,账户合约实现 validate 与 execute,验证通过需返回 VALID;部署分两步 declare 与 deploy,可共享 class hash,构造函数用 #[constructor] 属性;费用可用 STRK 或 ETH 支付;存储以 felt252 为基础,Map 做键哈希;函数选择器用 sn_keccak。资料还给出组件(component!)复用模式、Ownable 模式、原生 multicall、Universal Deployer Contract 地址以及 L1-L2 消息发送提及。
使用方式:安装 Scarb(asdf 或官方脚本)、Starknet Foundry(snfoundryup)和 starkli(starkliup);用 scarb new 建项目并配置 Scarb.toml;scarb build;starkli declare/deploy,或用 sncast declare/deploy/invoke/call;测试用 snforge test,支持 cheatcode 如 start_cheat_caller_address。前端/脚本集成用 npm install starknet,配置 RpcProvider、Account 和 Contract,读用 call、写用 invoke 并等待交易,batch 用 account.execute。资料列出主网与 Sepolia 的 Chain ID、公开 RPC、浏览器与水龙头 URL。
限制与不足:本资料未提供收费、价格、性能基准或审计结论;部分代码省略为 / ... /,具体实现需参考其 examples 目录;原文末尾 L1-L2 章节不完整,仅到 send_message_to_ 即中断,相关完整用法暂未提供。