Skip to content
This repository has been archived by the owner on Aug 8, 2024. It is now read-only.

Latest commit

 

History

History
138 lines (91 loc) · 13.2 KB

README.zh.md

File metadata and controls

138 lines (91 loc) · 13.2 KB

Starknet Cairo 101 Automated Workshop

banner

哈喽👋

本教程是为那些有兴趣学习Cairo 1和Starknet 智能合约的开发者准备的,您可以遵循此教程立即开始,玩的开心!

简介

欢迎来到Starknet,这是一个基于Ethereum主网的Validity Rollup(也称为ZK-Rollup),Starknet是一个二层解决方案,可以让开发人员在不影响安全性、可扩展性和去中心化的情况下构建去中心化应用程序。

本仓库呢旨在帮助您阅读Cairo代码和Starknet智能合约,并且在这个过程中理解他们的语法。不用担心,完成它只需要简单的跟着教程做即可,您不需要编写任何代码,或者在你的电脑上安装任何东西。仅仅通过您的浏览器就可以完成所有操作

这些练习题是部署在Starknet Alpha 测试网(goerli testnet)上的一组智能合约,每个智能合约都是一个练习/谜题,用于展示Cairo智能合约的某个特征。

完成每个练习之后,您将获得积分,积分是以ERC20 token的形式展现的。该token没有任何实际价值,但它是一种有趣的方式,来跟踪您的学习进度。

我们希望您在整个过程中玩的开心!

您将学到什么

  • 如何阅读Cairo 1代码
  • 如何阅读Starknet智能合约
  • 如何使用浏览器插件钱包和区块浏览器与Starknet智能合约交互

免责声明

除了学习一些关于Starknet很酷的东西以外,不要期望会有任何额外的好处,Starknet是基于Ethereum主网的第一个通用Validity Rollup。

步骤

Steps

1. 创建一个智能合约钱包,并将其连接到区块浏览器

要完成教程,您需要收集积分。 这些积分将会保存在您的Starknet钱包里。

  • 最简单的方法是使用 Argent X (下载chrome插件 或者 他们的仓库) 或者使用 Braavos (下载chrome插件). 这些钱包适用于Starknet,就像Metamask对于Ethereum一样。他们允许发起交易,与Starknet上的应用程序交互。
  • 按照钱包说明安装扩展程序。部署账户可能需要5分钟。需要注意的是,在Starknet中,只有一种类型的账户:智能合约账户。要创建一个新的账户,您需要发送一笔将您的智能合约账户部署到网络的交易。
  • 确保您当前网络是Goerli测试网。
  • 在教程中代表积分的Token合约是这个: 0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de (Starkscan 链接, Voyager 链接). 点击 "Add Token" 在你安装的钱包中添加Token合约的地址,就可以看到您的积分余额啦. 一个名为 SC101 (starknet-cairo-101) 的Token将会显示在您的钱包中.
  • 要在Goerli测试网上执行交易,你需要一些测试网的ETH来支付gas费。有两种方式获得测试网的ETH:
    • faucet, 跟随提示获取测试网ETH,可能需要几分钟的时间。
    • Starkgate 将Goerli ETH桥接到Starknet。

2. 使用区块浏览器与合约交互

要完成本次教程,您必须通过区块浏览器与练习/合约交互。

你可以使用StarkscanVoyager。这是在Starknet上的区块浏览器,就像Ethereum上的Etherscan一样。您可以通过他们来查看区块链的状态,也可以查看任何交易和他们的状态。

将您的钱包连接到区块浏览器,您就可以将交易发送到网络,与教程中的练习进行交互。

在查找合约/交易时,请确保您使用的是Goerli网络的区块浏览器。要完成练习,需要用到区块浏览器中的read/write标签。

3. 完成练习并获得分数

每个练习都是一个单独的智能合约. 在正确执行其中的代码时,会自动的将积分发送到您的地址。

要完成联系,请解决下面的链接阅读其代码。阅读其中的注释,并按照说明理解代码。您的目标是让每个练习都成功调用 distribute_points() 函数,成功调用之后将会向您发送ERC20积分。

在验证的过程中,练习合约通常也会调用 validate_exercise() 方法,它会记录您完成了练习,并且防止您多次收集积分。

每个练习都部署在Goerli测试网上,您需要通过区块浏览器与它们进行交互。下表中记录的是合约地址

习题 合约代码 通过 Starkscan 查看 通过 Voyager 查看
General syntax Ex01 Link Link
Storage variables, getters, asserts Ex02 Link Link
Reading and writing storage variables Ex03 Link Link
Mappings Ex04 Link Link
Variable visibility Ex05 Link Link
Functions visibility Ex06 Link Link
Comparing values Ex07 Link Link
Recursions level 1 Ex08 Link Link
Recursions level 2 Ex09 Link Link
Composability Ex10 Link Link
Importing functions Ex11 Link Link
Events Ex12 Link Link
Privacy on Starknet Ex13 Link Link
Multicall Ex14 Link Link

4. 计算分数并检查你的进度

你的积分将存入你的钱包,这可能需要一些时间。如果您想试试查看您的积分,您可以在区块浏览器上检查余额!

  • Voyager 或者 Starkscan 上访问ERC20积分合约,打开 "read contract" 标签。
  • 点击 balanceOf 方法,然后输入您的地址,点击查询。

享受这次旅程!如果您有任何疑问,请随时通过 Discord 联系我们,我们非常乐意帮助!


为改进本仓库做贡献

这个项目可以做的更好。非常欢迎您的贡献!访问 CONTRIBUTING 文件获取有关如何设置环境并且为项目作出贡献的更多信息.

这是一些您可以帮忙做的事情:

  • 创建一个翻译成您语言的分支
  • 修复一些您发现的bug
  • 如果您觉得练习中需要更多解释,请在注释中添加
  • 添加练习,将您最喜欢的Cairo的特性展示给大家
  • 为本仓库添加新的教程

其他有趣的仓库

本仓库是教授如何在Starknet上构建的第一个仓库。查看其他类型的仓库:

主题 GitHub 仓库
学习如何阅读Cairo代码 (你在这里) Cairo 101
部署并自定义 ERC721 NFT Starknet ERC721
部署并自定义 ERC20 token Starknet ERC20
构建跨链应用程序 Starknet messaging bridge
轻松调试您的Cairo合约 Starknet debug
设计您自己的账户合约 Starknet account abstraction

提交反馈 & 寻求帮助

完成本教程之后,如果您有一些反馈,我们将不胜感激!

请填写 这个表格 让我们知道如何将它变的更好.

如果您努力前进,请一定让我们知道!这个仓库的目的是尽可能的提供帮助;我们想看看是不是这样的。 ​ 如果您有任何疑问? 加入我们的 Discord,注册,并加入 #tutorials-support 频道。

您是否有兴趣参与关于Starknet开发的线上讨论?订阅

多语言

  • (未更新) 西班牙语版 这里
  • (未更新) 葡萄牙语版 这里
  • (未更新) 韩语版 这里
  • 中文版 这里