From a9224ce0263841b2a7bb9f25fd48d69aca7ccf76 Mon Sep 17 00:00:00 2001 From: 0xDev <84038223+avocadodefi@users.noreply.github.com> Date: Fri, 1 Dec 2023 01:30:49 +0100 Subject: [PATCH] Update and rename README.md to README.de.md German translation. --- README.de.md | 139 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 146 --------------------------------------------------- 2 files changed, 139 insertions(+), 146 deletions(-) create mode 100644 README.de.md delete mode 100644 README.md diff --git a/README.de.md b/README.de.md new file mode 100644 index 0000000..65f4600 --- /dev/null +++ b/README.de.md @@ -0,0 +1,139 @@ +# HAFTUNGSAUSSCHLUSS +Hallo Starknet-Community, +Dieses Repository ist nicht aktualisiert mit der neuesten Cairo-Syntax und daher empfehlen wir, dieses Tutorial nicht zu versuchen. Wenn Sie daran interessiert sind, zur Aktualisierung des Tutorials beizutragen, kommentieren Sie bitte das untenstehende Issue, um eine Aufgabe zu übernehmen. +Mehr Details über das Issue und die Aufschlüsselung der Übungen finden Sie hier: +https://github.com/starknet-edu/starknet-cairo-101/issues/61 + +Sie können mich auch (@gyanlakshmi) oder Omar (@omarespejel) auf Telegram anschreiben, um Sie bei den richtigen Aufgaben zu unterstützen. + +# Starknet Cairo 101 Automatisierter Workshop + +![banner](assets/banner.png) + +- Eine vereinfachte chinesische Version ist verfügbar [hier](./README.zh.md). +- Eine vereinfachte spanische Version ist verfügbar [hier](./README.es.md). +- (nicht aktualisiert) Eine vereinfachte portugiesische Version ist verfügbare [hier](./README.pt.md). +- (nicht aktualisiert) Eine vereinfachte koreanische Version ist verfügbar [hier](./README.kr.md). +- (nicht aktualisiert) Eine vereinfachte deutsche Version ist verfügbar [hier](./README.de.md). + + +Einführung +Willkommen bei Starknet, einem allgemein nutzbaren Validity Rollup auf dem Ethereum-Hauptnetz. Starknet ist eine Layer-2-Skalierungslösung, die es Entwicklern ermöglicht, dezentrale Anwendungen zu entwickeln, ohne bei Sicherheit, Skalierbarkeit und Dezentralisierung Kompromisse einzugehen. + +Dieser Workshop soll Ihnen helfen, Cairo 1 Code und Starknet Smart Contracts zu lesen und ihre Syntax zu verstehen. Keine Sorge, Sie müssen nichts auf Ihrem Computer installieren oder programmieren, um ihn zu verfolgen und abzuschließen. Sie können alles in Ihrem Browser machen. + +Die Übungen sind eine Reihe von Smart Contracts, die auf Starknet Alpha im Testnetz bereitgestellt sind. Jeder Smart Contract ist eine Übung/Rätsel, die ein Merkmal der Cairo Smart Contract-Sprache darstellt. + +Das Abschließen der Übungen bringt Ihnen Punkte in Form eines ERC20-Tokens. Das Token hat keinen monetären Wert, aber es ist eine lustige Art, Ihren Lernfortschritt zu verfolgen. + +Wir hoffen, Sie haben Spaß an diesem Workshop! + +Was Sie lernen werden +Wie man Cairo 1 Code liest +Wie man Starknet Smart Contracts liest +Wie man mit Starknet Smart Contracts interagiert, indem man ein Browser-Wallet und einen Block-Explorer verwendet. +Haftungsausschluss +Erwarten Sie keinen anderen Nutzen von der Verwendung dieses, außer etwas Cooles über Starknet, den ersten allgemein nutzbaren Validity Rollup im Ethereum-Hauptnetz, zu lernen. + +Schritte + +![Steps](assets/steps.png) + +1. Erstellen einer Smart Contract-Wallet und Verbinden mit einem Block Explorer +2. +Um das Tutorial abzuschließen, müssen Sie Punkte sammeln. Diese Punkte besitzen Sie durch Ihre Starknet-Wallet. + +Der einfachste Weg, eine einzurichten, ist die Verwendung von Argent X ([download the chrome extension](https://chrome.google.com/webstore/detail/argent-x-starknet-wallet/dlcobpjiigpikoobohmabehhmhfoodbb/) oder [check their repo](https://github.com/argentlabs/argent-x)) oder Braavos ([download the chrome extension](https://chrome.google.com/webstore/detail/braavos-wallet/jnlgamecbpmbajjfhmmmlhejkemejdma)). + +Diese Wallet-Lösungen sind für Starknet das, was Metamask für Ethereum ist. Sie ermöglichen es Benutzern, Transaktionen zu initiieren und mit Anwendungen auf Starknet zu interagieren. +Befolgen Sie die Anweisungen in Ihrer Wallet-App, um die Erweiterung zu installieren. Es kann etwa 5 Minuten dauern, bis das Konto eingerichtet ist. Beachten Sie, dass es in Starknet nur einen Typ von Konto gibt: Smart-Contract-Konten. Um eine neue Wallet zu erstellen, müssen Sie eine Transaktion senden, die Ihre Smart-Contract-Wallet im Netzwerk veröffentlicht. +Stellen Sie sicher, dass Sie sich im Goerli-Testnetz-Netzwerk befinden. +Die Punkte des Tutorials werden im Vertrag gehalten `0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de` ([Starkscan link](https://testnet.starkscan.co/contract/0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de), [Voyager link](https://goerli.voyager.online/contract/0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de)). Klicken Sie auf "Token hinzufügen" in Ihrer installierten Wallet und fügen Sie die Adresse des Tutorial-Vertrags hinzu, damit Ihr Punktestand dort erscheint. Ein neuer Token namens SC101 (starknet-cairo-101) wird in Ihrer Wallet erscheinen. +Um Transaktionen im Goerli Starknet-Testnetz auszuführen, benötigen Sie Testnetz-ETH, um für Gas zu bezahlen. Sie haben zwei Möglichkeiten: +Gehen Sie zum [faucet](https://faucet.goerli.starknet.io/) und folgen Sie den Anweisungen. Es kann einige Minuten dauern. +Gehen Sie zu [Starkgate](https://goerli.starkgate.starknet.io/) übertragen Sie Goerli Eth von Ethereum zu Starknet. + + +Verwenden Sie einen Block Explorer, um mit den Verträgen zu interagieren + +Um diesen Workshop abzuschließen, müssen Sie mit den Übungen/Smart Contracts über einen Block Explorer interagieren. + +Sie können entweder [Starkscan](https://testnet.starkscan.co/) oder [Voyager](https://goerli.voyager.online/) verwenden. Diese sind für Starknet das, was Etherscan für Ethereum ist. Sie ermöglichen es Ihnen, den Zustand der Blockchain zu durchsuchen und alle Transaktionen sowie deren Status anzusehen. + +Indem Sie Ihre Wallet mit dem Block Explorer verbinden, können Sie Ihre Transaktionen ins Netzwerk senden und mit den Übungen im Tutorial interagieren. + +Achten Sie immer darauf, dass Sie sich auf der Goerli-Version des Block Explorers befinden, wenn Sie nach einem Vertrag/Transaktion suchen. Um die Übungen zu lösen, greifen Sie auf die Funktionen des Vertrags zu, indem Sie den Reiter lesen/schreiben im Explorer verwenden. + +3. Übungen lösen und Punkte sammeln +Jede Übung ist ein separater Smart Contract. Sie enthält Code, der, wenn er korrekt ausgeführt wird, Punkte an Ihre Adresse verteilt. + +Um eine Übung zu lösen, folgen Sie dem untenstehenden Link, um ihren Code zu lesen. Lesen Sie die Kommentare und befolgen Sie die Anweisungen, um den Code zu verstehen. Ihr Ziel ist es, jede Übung erfolgreich dazu zu bringen, die Funktion distribute_points() aufzurufen, die Ihnen ERC20-Punkte sendet. + +Während der Validierung rufen Übungen oft auch validate_exercise() auf, was aufzeichnet, dass Sie eine Übung abgeschlossen haben, und Sie daran hindert, mehrmals Punkte zu sammeln. + +Jede Übung ist im Goerli-Testnetz bereitgestellt, und Sie müssen über einen Block Explorer mit ihnen interagieren. Die Adressen der Verträge finden Sie in der untenstehenden Tabelle. + +| Topic | Contract code | Contract on Starkscan | Contract on Voyager | +| ------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| General syntax | [Ex01](src/ex01.cairo) | [Link](https://testnet.starkscan.co/contract/0x031d1866cb827c4e27bbca9ffee59fa2158b679413ffb58c3f90af56e1140e85) | [Link](https://goerli.voyager.online/contract/0x031d1866cb827c4e27bbca9ffee59fa2158b679413ffb58c3f90af56e1140e85) | +| Storage variables, getters, asserts | [Ex02](src/ex02.cairo) | [Link](https://testnet.starkscan.co/contract/0x0600f8fe0752e598b4e6b27839f00ad65215d129f385e12931323c487b6f9b36) | [Link](https://goerli.voyager.online/contract/0x0600f8fe0752e598b4e6b27839f00ad65215d129f385e12931323c487b6f9b36) | +| Reading and writing storage variables | [Ex03](src/ex03.cairo) | [Link](https://testnet.starkscan.co/contract/0x033d5fc40c0e262612528a9a652ada70be854d98241fb7548745262b5273c9d1) | [Link](https://goerli.voyager.online/contract/0x033d5fc40c0e262612528a9a652ada70be854d98241fb7548745262b5273c9d1) | +| Mappings | [Ex04](src/ex04.cairo) | [Link](https://testnet.starkscan.co/contract/0x06967cd33c6e064087123958e239c98f0de5e6d663660fa16a2526e8b115688a) | [Link](https://goerli.voyager.online/contract/0x06967cd33c6e064087123958e239c98f0de5e6d663660fa16a2526e8b115688a) | +| Variable visibility | [Ex05](src/ex05.cairo) | [Link](https://testnet.starkscan.co/contract/0x076c32e000f7112724bba3c5f51fb1290217a1010ae555e6ecbdb2bfe6613e33) | [Link](https://goerli.voyager.online/contract/0x076c32e000f7112724bba3c5f51fb1290217a1010ae555e6ecbdb2bfe6613e33) | +| Functions visibility | [Ex06](src/ex06.cairo) | [Link](https://testnet.starkscan.co/contract/0x060987aea322cd12657588b6cdb0892db79322ab4533f7d74838ff2e2614a015) | [Link](https://goerli.voyager.online/contract/0x060987aea322cd12657588b6cdb0892db79322ab4533f7d74838ff2e2614a015) | +| Comparing values | [Ex07](src/ex07.cairo) | [Link](https://testnet.starkscan.co/contract/0x006051096480f375894eebb99948bce14a84c25093636c4b4e8222cc32a67cf0) | [Link](https://goerli.voyager.online/contract/0x006051096480f375894eebb99948bce14a84c25093636c4b4e8222cc32a67cf0) | +| Recursions level 1 | [Ex08](src/ex08.cairo) | [Link](https://testnet.starkscan.co/contract/0x01ec8e981b1b6a7256a71f21790dd07cafeb15d02c18534a2bd4a6c8551860aa) | [Link](https://goerli.voyager.online/contract/0x01ec8e981b1b6a7256a71f21790dd07cafeb15d02c18534a2bd4a6c8551860aa) | +| Recursions level 2 | [Ex09](src/ex09.cairo) | [Link](https://testnet.starkscan.co/contract/0x053b96c4ee027c53ea001479f24c10b543063e3c26d037c600e5bd31f0b21e5c) | [Link](https://goerli.voyager.online/contract/0x053b96c4ee027c53ea001479f24c10b543063e3c26d037c600e5bd31f0b21e5c) | +| Composability | [Ex10](src/ex10.cairo) | [Link](https://testnet.starkscan.co/contract/0x0763e89551900eba82d757a9f3862935cc7f7e47538f01ddba514f23d9a5f6e0) | [Link](https://goerli.voyager.online/contract/0x0763e89551900eba82d757a9f3862935cc7f7e47538f01ddba514f23d9a5f6e0) | +| Importing functions | [Ex11](src/ex11.cairo) | [Link](https://testnet.starkscan.co/contract/0x029a9a484d22a6353eff0d60ea56c6ffabaaac5e4889182287ef1d261578b197) | [Link](https://goerli.voyager.online/contract/0x029a9a484d22a6353eff0d60ea56c6ffabaaac5e4889182287ef1d261578b197) | +| Events | [Ex12](src/ex12.cairo) | [Link](https://testnet.starkscan.co/contract/0x04a221a8e3155fb03d1708881213a2ecdb05a41cf0ae6de83ddcf8f12bb04282) | [Link](https://goerli.voyager.online/contract/0x04a221a8e3155fb03d1708881213a2ecdb05a41cf0ae6de83ddcf8f12bb04282) | +| Privacy on Starknet | [Ex13](src/ex13.cairo) | [Link](https://testnet.starkscan.co/contract/0x067ed1d23c5cc3a34fb86edd4f8415250c79a374e87bcf2e6870321261ca9b0f) | [Link](https://goerli.voyager.online/contract/0x067ed1d23c5cc3a34fb86edd4f8415250c79a374e87bcf2e6870321261ca9b0f) | +| Multicall | [Ex14](src/ex14.cairo) | [Link](https://testnet.starkscan.co/contract/0x031e9a701a24c1d2ecd576208087dfa52f1025072cf11e54407300f64f95ce5f) | [Link](https://goerli.voyager.online/contract/0x031e9a701a24c1d2ecd576208087dfa52f1025072cf11e54407300f64f95ce5f) | + +### 4. Ihre Punkte zählen und Ihren Fortschritt überprüfen + +Ihre Punkte werden Ihrem Wallet gutgeschrieben, dies kann jedoch einige Zeit dauern. Wenn Sie Ihren Punktestand in Echtzeit verfolgen möchten, können Sie auch Ihr Guthaben in einem Block Explorer überprüfen! +Gehen Sie zum ERC20-Zähler auf Voyager [Voyager](https://goerli.voyager.online/contract/0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de) oder [Starkscan] + +(https://testnet.starkscan.co/contract/0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de) im Tab "Vertrag lesen". +Geben Sie Ihre Adresse in die Funktion balanceOf ein. +Viel Spaß beim Workshop! Wenn Sie Fragen haben, können Sie uns gerne auf Discord [Discord](https://starknet.io/discord) kontaktieren. Wir helfen Ihnen gerne weiter! + +--- + +Beitrag zur Verbesserung dieses Workshops +Dieses Projekt kann verbessert und weiterentwickelt werden. Ihre Beiträge sind willkommen! Gehen Sie zur CONTRIBUTING-Datei [CONTRIBUTING](CONTRIBUTING.md) , um mehr darüber zu erfahren, wie Sie Ihre Umgebung einrichten und zum Projekt beitragen können. + + file for more information on how to setup your environment and contribute to the project. + +Hier sind einige Dinge, die Sie tun können, um zu helfen: + +Erstellen Sie einen Branch mit einer Übersetzung in Ihre Sprache +Korrigieren Sie Fehler, wenn Sie welche finden +Fügen Sie eine Erklärung in den Kommentaren der Übung hinzu, wenn Sie denken, dass sie mehr Erklärung benötigt +Fügen Sie Übungen hinzu, die Ihr Lieblingsmerkmal von Cairo zeigen +Fügen Sie der Serie ein neues Tutorial hinzu +Andere Automatisierte Workshops +Dieser Workshop ist der erste einer Reihe, die darauf abzielt, zu lehren, wie man auf Starknet aufbaut. Schauen Sie sich andere Workshops in der Reihe an: + +| Topic | GitHub repo | +| ------------------------------------------- | -------------------------------------------------------------------------------------- | +| Learn how to read Cairo code (you are here) | [Cairo 101](https://github.com/starknet-edu/starknet-cairo-101) | +| Deploy and customize an ERC721 NFT | [Starknet ERC721](https://github.com/starknet-edu/starknet-erc721) | +| Deploy and customize an ERC20 token | [Starknet ERC20](https://github.com/starknet-edu/starknet-erc20) | +| Build a cross-layer application | [Starknet messaging bridge](https://github.com/starknet-edu/starknet-messaging-bridge) | +| Debug your Cairo contracts easily | [Starknet debug](https://github.com/starknet-edu/starknet-debug) | +| Design your own account contract | [Starknet account abstraction](https://github.com/starknet-edu/starknet-accounts) | + + +# Rückmeldung geben & Hilfe erhalten + +Sobald Sie mit diesem Tutorial fertig sind, wird Ihre Rückmeldung sehr geschätzt! + +Bitte füllen Sie dieses Formular [this form](https://forms.reform.app/starkware/untitled-form-4/kaes2e) aus, um uns mitzuteilen, was wir tun können, um es besser zu machen. + +Und wenn Sie Schwierigkeiten haben, voranzukommen, lassen Sie es uns wissen! Dieser Workshop soll so zugänglich wie möglich sein; wir möchten sehen, ob dies nicht der Fall ist. + +Haben Sie eine Frage? Treten Sie unserem Discord-Server bei [Discord server](https://starknet.io/discord), registrieren Sie sich und treten Sie dem Kanal #tutorials-support bei. + +Interessieren Sie sich für die Teilnahme an Online-Workshops über die Entwicklung auf Starknet? Abonnieren Sie hier [Subscribe here](https://starknet.substack.com/) diff --git a/README.md b/README.md deleted file mode 100644 index 4602dbd..0000000 --- a/README.md +++ /dev/null @@ -1,146 +0,0 @@ -# DISCLAIMER -Hello Starknet community, -This repository is **not updated** with the latest Cairo syntax and hence, we do not recommend to attempt this tutorial as of today. If you are interested in contributing to the repository to update the tutorial, please comment on the below issue to pick up a task. -You can find more details about the issue and exercises breakdown here: -https://github.com/starknet-edu/starknet-cairo-101/issues/61 - -You can also ping me(@gyanlakshmi) or Omar(@omarespejel) on Telegram to tag you on the right tasks. - -# Starknet Cairo 101 Automated Workshop - -![banner](assets/banner.png) - -- A Simplified Chinese version is available [here](./README.zh.md). -- A Spanish version is available [here](./README.es.md). -- (not updated) A Portuguese version is available [here](./README.pt.md). -- (not updated) A Korean version is available [here](./README.kr.md). - -Welcome! - -This tutorial is made for developers who are interested in learning how to read Cairo 1 code and Starknet smart contracts. By following it, you'll be able to get started in no time. Have fun! - -## Introduction​ - -Welcome to Starknet, a general-purpose Validity Rollup on top of Ethereum mainnet. Starknet is a layer 2 scaling solution that lets developers build decentralised applications without compromising on security, scalability and decentralization. - -This workshop is designed to help you read Cairo 1 code and Starknet smart contracts, and understand their syntax. Don't worry, you don't need to code or install anything on your machine to follow and complete it. **You can do it all from your browser**. - -The exercises are a set of smart contracts deployed on Starknet Alpha on testnet. Each smart contract is an exercise/puzzle that outlines a feature of the Cairo Smart contract language. - -Completing the exercises will earn you points in the form of an [ERC20 token](src/token/TDERC20.cairo). The token does not have any monetary value, but it's a fun way to track your learning progresses. - -We hope you have fun participating in this workshop! - -## What you will learn - -- How to read Cairo 1 code -- How to read Starknet smart contracts -- How to interact with Starknet smart contracts using a browser wallet and a block explorer. - -### Disclaimer - -​Don’t expect any benefit from using this other than learning some cool stuff about Starknet, the first general-purpose Validity Rollup on the Ethereum mainnet. - -## Steps - -![Steps](assets/steps.png) - -### 1. Creating a smart contract wallet and connecting it to a Block Explorer - -**To complete the tutorial, you need to collect points.** You will own these points through your Starknet wallet. - -- The easiest way to set one up is to use Argent X ([download the chrome extension](https://chrome.google.com/webstore/detail/argent-x-starknet-wallet/dlcobpjiigpikoobohmabehhmhfoodbb/) or [check their repo](https://github.com/argentlabs/argent-x)) or Braavos ([download the chrome extension](https://chrome.google.com/webstore/detail/braavos-wallet/jnlgamecbpmbajjfhmmmlhejkemejdma)). -These wallet solutions are for Starknet what Metamask is for Ethereum. They allow users to initiate transactions and interact with applications on Starknet. -- Follow the instructions in your wallet app to install the extension. It may take approximately 5 minutes for the account to be deployed. Note that in Starknet, there is only one type of account: smart contract accounts. To create a new wallet, you need to send a transaction that publishes your smart contract wallet to the network. -- Make sure you are on the Goerli testnet network. -- The tutorial’s points are held in contract `0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de` ([Starkscan link](https://testnet.starkscan.co/contract/0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de), [Voyager link](https://goerli.voyager.online/contract/0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de)). Click "Add Token" in your installed wallet and add the tutorial contract address so that your points balance appears there. A new token called `SC101` (starknet-cairo-101) will appear in your wallet. -- To execute transactions on the Goerli Starknet testnet, you will need testnet ETH to pay for gas. You have two options: - - Go to the [faucet](https://faucet.goerli.starknet.io/) and follow the instructions. It may take a few minutes - - Go to [Starkgate](https://goerli.starkgate.starknet.io/) and bridge Goerli Eth from Ethereum to Starknet - -### 2. Use a Block Explorer to interact with the contracts - -To finish this workshop, you have to interact with the exercises/smart contracts through a block explorer. - -You can use either [Starkscan](https://testnet.starkscan.co/) or [Voyager](https://goerli.voyager.online/). These are for Starknet what Etherscan is for Ethereum. They allow you to browse the state of the blockchain and view all transactions and their status. - -By connecting your wallet to the block explorer, you will be able to send your transactions to the network and interact with the exercises in the tutorial. - -When looking for a contract/transaction, always ensure you are on the Goerli version of the Block Explorer. To solve the exercises, access the contract’s functions by using the `read`/`write` tab in the explorer.​ - -### 3. Solving exercises and getting points​ -​ -**Each exercise is a separate smart contract.** It contains code that, when executed correctly, will distribute points to your address. - -To solve an exercise, follow the link below to read its code. Read the comments, and follow the instructions to understand the code. Your goal is to get each exercise to call successfully the function `distribute_points()`, which will send you ERC20 points. - -During validation, exercises often also call `validate_exercise()`, which records that you completed an exercise and prohibit you from collecting points various times. - -Each exercise is deployed on the Goerli testnet, and you will need to interact with them through a Block Explorer. You can find the addresses of the contracts in the table below. - -| Topic | Contract code | Contract on Starkscan | Contract on Voyager | -| ------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| General syntax | [Ex01](src/ex01.cairo) | [Link](https://testnet.starkscan.co/contract/0x031d1866cb827c4e27bbca9ffee59fa2158b679413ffb58c3f90af56e1140e85) | [Link](https://goerli.voyager.online/contract/0x031d1866cb827c4e27bbca9ffee59fa2158b679413ffb58c3f90af56e1140e85) | -| Storage variables, getters, asserts | [Ex02](src/ex02.cairo) | [Link](https://testnet.starkscan.co/contract/0x0600f8fe0752e598b4e6b27839f00ad65215d129f385e12931323c487b6f9b36) | [Link](https://goerli.voyager.online/contract/0x0600f8fe0752e598b4e6b27839f00ad65215d129f385e12931323c487b6f9b36) | -| Reading and writing storage variables | [Ex03](src/ex03.cairo) | [Link](https://testnet.starkscan.co/contract/0x033d5fc40c0e262612528a9a652ada70be854d98241fb7548745262b5273c9d1) | [Link](https://goerli.voyager.online/contract/0x033d5fc40c0e262612528a9a652ada70be854d98241fb7548745262b5273c9d1) | -| Mappings | [Ex04](src/ex04.cairo) | [Link](https://testnet.starkscan.co/contract/0x06967cd33c6e064087123958e239c98f0de5e6d663660fa16a2526e8b115688a) | [Link](https://goerli.voyager.online/contract/0x06967cd33c6e064087123958e239c98f0de5e6d663660fa16a2526e8b115688a) | -| Variable visibility | [Ex05](src/ex05.cairo) | [Link](https://testnet.starkscan.co/contract/0x076c32e000f7112724bba3c5f51fb1290217a1010ae555e6ecbdb2bfe6613e33) | [Link](https://goerli.voyager.online/contract/0x076c32e000f7112724bba3c5f51fb1290217a1010ae555e6ecbdb2bfe6613e33) | -| Functions visibility | [Ex06](src/ex06.cairo) | [Link](https://testnet.starkscan.co/contract/0x060987aea322cd12657588b6cdb0892db79322ab4533f7d74838ff2e2614a015) | [Link](https://goerli.voyager.online/contract/0x060987aea322cd12657588b6cdb0892db79322ab4533f7d74838ff2e2614a015) | -| Comparing values | [Ex07](src/ex07.cairo) | [Link](https://testnet.starkscan.co/contract/0x006051096480f375894eebb99948bce14a84c25093636c4b4e8222cc32a67cf0) | [Link](https://goerli.voyager.online/contract/0x006051096480f375894eebb99948bce14a84c25093636c4b4e8222cc32a67cf0) | -| Recursions level 1 | [Ex08](src/ex08.cairo) | [Link](https://testnet.starkscan.co/contract/0x01ec8e981b1b6a7256a71f21790dd07cafeb15d02c18534a2bd4a6c8551860aa) | [Link](https://goerli.voyager.online/contract/0x01ec8e981b1b6a7256a71f21790dd07cafeb15d02c18534a2bd4a6c8551860aa) | -| Recursions level 2 | [Ex09](src/ex09.cairo) | [Link](https://testnet.starkscan.co/contract/0x053b96c4ee027c53ea001479f24c10b543063e3c26d037c600e5bd31f0b21e5c) | [Link](https://goerli.voyager.online/contract/0x053b96c4ee027c53ea001479f24c10b543063e3c26d037c600e5bd31f0b21e5c) | -| Composability | [Ex10](src/ex10.cairo) | [Link](https://testnet.starkscan.co/contract/0x0763e89551900eba82d757a9f3862935cc7f7e47538f01ddba514f23d9a5f6e0) | [Link](https://goerli.voyager.online/contract/0x0763e89551900eba82d757a9f3862935cc7f7e47538f01ddba514f23d9a5f6e0) | -| Importing functions | [Ex11](src/ex11.cairo) | [Link](https://testnet.starkscan.co/contract/0x029a9a484d22a6353eff0d60ea56c6ffabaaac5e4889182287ef1d261578b197) | [Link](https://goerli.voyager.online/contract/0x029a9a484d22a6353eff0d60ea56c6ffabaaac5e4889182287ef1d261578b197) | -| Events | [Ex12](src/ex12.cairo) | [Link](https://testnet.starkscan.co/contract/0x04a221a8e3155fb03d1708881213a2ecdb05a41cf0ae6de83ddcf8f12bb04282) | [Link](https://goerli.voyager.online/contract/0x04a221a8e3155fb03d1708881213a2ecdb05a41cf0ae6de83ddcf8f12bb04282) | -| Privacy on Starknet | [Ex13](src/ex13.cairo) | [Link](https://testnet.starkscan.co/contract/0x067ed1d23c5cc3a34fb86edd4f8415250c79a374e87bcf2e6870321261ca9b0f) | [Link](https://goerli.voyager.online/contract/0x067ed1d23c5cc3a34fb86edd4f8415250c79a374e87bcf2e6870321261ca9b0f) | -| Multicall | [Ex14](src/ex14.cairo) | [Link](https://testnet.starkscan.co/contract/0x031e9a701a24c1d2ecd576208087dfa52f1025072cf11e54407300f64f95ce5f) | [Link](https://goerli.voyager.online/contract/0x031e9a701a24c1d2ecd576208087dfa52f1025072cf11e54407300f64f95ce5f) | - - -### 4. Counting your points and checking your progress - -Your points will be credited to your wallet, though this may take some time. If you want to monitor your points count in real-time, you can also check your balance in a block explorer! -- Go to the ERC20 counter on [Voyager](https://goerli.voyager.online/contract/0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de) or [Starkscan](https://testnet.starkscan.co/contract/0x044f65adbdb59bf1db71e8b69efb7c9d0b810db94c1730a05fa5751b02d396de) in the "read contract" tab. -- Enter your address in the `balanceOf` function.​ - -Enjoy the workshop! If you have any questions, feel free to contact us on [Discord](https://starknet.io/discord). We are happy to help! - ---- - -## Contributing to improve this workshop - -This project can be made better and will evolve. Your contributions are welcome! Go to the [CONTRIBUTING](CONTRIBUTING.md) file for more information on how to setup your environment and contribute to the project. - -Here are **some** things that you can do to help: - -- Create a branch with a translation to your language -- Correct bugs if you find some -- Add an explanation in the comments of the exercise if you feel it needs more explanation -- Add exercises showcasing your favorite Cairo feature -- Add a new tutorial to the series - - -## Other Automated Workshops - -This workshop is the first in a series aimed at teaching how to build on Starknet. Checkout out other workshops in the series: - -| Topic | GitHub repo | -| ------------------------------------------- | -------------------------------------------------------------------------------------- | -| Learn how to read Cairo code (you are here) | [Cairo 101](https://github.com/starknet-edu/starknet-cairo-101) | -| Deploy and customize an ERC721 NFT | [Starknet ERC721](https://github.com/starknet-edu/starknet-erc721) | -| Deploy and customize an ERC20 token | [Starknet ERC20](https://github.com/starknet-edu/starknet-erc20) | -| Build a cross-layer application | [Starknet messaging bridge](https://github.com/starknet-edu/starknet-messaging-bridge) | -| Debug your Cairo contracts easily | [Starknet debug](https://github.com/starknet-edu/starknet-debug) | -| Design your own account contract | [Starknet account abstraction](https://github.com/starknet-edu/starknet-accounts) | - -### Providing feedback & getting help - -Once you are done working on this tutorial, your feedback will be greatly appreciated! - -**Please fill out [this form](https://forms.reform.app/starkware/untitled-form-4/kaes2e) to let us know what we can do to make it better.** - -​ -And if you struggle to move forward, do let us know! This workshop is meant to be as accessible as possible; we want to see if it’s not the case. -​ -Do you have a question? Join our [Discord server](https://starknet.io/discord), register, and join channel #tutorials-support. - -Are you interested in attending online workshops about dev on Starknet? [Subscribe here](https://starknet.substack.com/)