Skip to content

Latest commit

 

History

History
162 lines (112 loc) · 12.7 KB

README.pt.md

File metadata and controls

162 lines (112 loc) · 12.7 KB

StarkNet Cairo 101

Comece a aprender Cairo com esse simples tutorial. Complete puzzles/exercícios, receba tokens e aprenda sobre contratos inteligentes da StarkNet!

Introdução

Aviso legal

Não espere nenhuma benefício em usar esse material além de aprender algumas coisas sobre StarkNet, o primeiro rollup de validez de uso geral da rede principal da Ethereum (Mainnet).

​A StarkNet ainda está em Alpha. Isso significa que o desenvolvimento está em andamento e a tinta não está seca em todos os lugares. As coisas vão melhorar e, enquanto isso, fazemos as coisas funcionarem com um pouco de fita adesiva aqui e ali!

Como funciona

Complete os exercícios e ganhe tokens! Este workshop é um conjunto de contratos inteligentes implantados na testnet StarkNet Alpha. Cada contrato inteligente é um exercício/puzzle - que descreve um recurso da linguagem Cairo.

Completar os exercícios lhe dará pontos em forma de tokens ERC20.

​ Este workshop se concentra na leitura de código em Cairo e nos contratos inteligentes da StarkNet para entender sua sintaxe. Você não precisa programar ou instalar nada em sua máquina para segui-lo e completá-lo.

​ Você levará algum tempo para começar (fazendo os dois primeiros exercícios) no tutorial. Espere! Uma vez lá, as coisas fluirão mais facilmente. Você está aprendendo!

Onde estou?

Este workshop é o primeiro de uma série com o objetivo de ensinar como programar na StarkNet. Confira a seguir:

Topic GitHub repo
Aprenda a ler código Cairo (você está aqui) Cairo 101
Implemente e personalize um NFT ERC721 StarkNet ERC721
Implemente e personalize um token ERC20 StarkNet ERC20
Crie um aplicativo de camada cruzada (cross layer) StarkNet ponte de mensagens
Depure seus contratos do Cairo facilmente StarkNet debug
Crie seu próprio contrato StarkNet abstração de conta

Fornecer feedback e obter ajuda

Quando terminar este tutorial, deixe seu feedback, será bem apreciado!

Por favor preencha esse formulário para sabermos em que podemos melhorar.

​ E se você tiver dificuldades para progredir no tutorial, fale conosco! Este workshop pretende ser o mais acessível possível; queremos saber caso não seja.

​ Você tem alguma pergunta? Entre no nosso servidor no Discord, registre-se e participe do canal #tutorials-support.

Você está interessado em acompanhar workshops online sobre como desenvolver na StarkNet? Se inscreva aqui

Contribuindo

Este projeto pode ser melhorado e evoluirá à medida que a StarkNet amadurece. Suas contribuições são bem-vindas! Aqui estão algumas coisas que você pode fazer para ajudar:

  • Criar uma branch com a tradução para sua língua
  • Corrigir bugs se você achar algum
  • Adicionar uma explicação nos comentários do exercício se achar que precisa de mais explicações
  • Adicione exercícios mostrando seu recurso favorito de Cairo

Línguas

A versão original em inglês está disponível aqui. ​

Começando

Criando uma carteira de contrato inteligente

Para concluir o tutorial, você precisa coletar pontos. Esses pontos serão enviados para uma carteira de contrato inteligente que você precisa criar.

  • A maneira mais fácil de configurar uma é usar o Argent X (baixe a extensão do chrome ou confira o repositório) ou Braavos (baixe a extensão do chrome). Essas soluções de carteira são semelhantes ao que o Metamask é para o Ethereum e permitem que os usuários iniciem transações e interajam com aplicativos no StarkNet.
  • Siga as instruções para instalar a extensão e criar uma carteira de contrato inteligente (pode levar cerca de 5 minutos para ser criada). Observe que na StarkNet há apenas um tipo de conta - contratos inteligentes, chamadas Abstração de conta (Account Abstraction), diferente da rede Ethereum, onde há carteiras e contratos inteligentes. Em outras palavras, cada carteira no StarkNet é um contrato inteligente e não há distinção entre eles e outros contratos inteligentes. Portanto, para criar uma nova carteira, você precisa efetuar uma transação que publique sua carteira de contrato inteligente na rede.
  • Certifique-se de estar na rede testnet Goerli.
  • Os pontos do tutorial são mantidos em contrato [0x5c6b1379f1d4c8a4f5db781a706b63a885f3f9570f7863629e99e2342ac344c](https://goerli.voyager.online/contract/0x5c6b1379f1d4c8a4f5db781a706b63a885f3f9570f7863629e99e2342ac344c). Clique em "Adicionar Token" na sua carteira e ponha endereço do contrato para que seus pontos apareça lá! Um novo token chamado SC101 (starknet-cairo-101) aparecerá em sua carteira.
  • Conecte Voyager a sua carteira. Voyager é o explorador de blocos para StarkNet (o equivalente de Etherscan para Ethereum) e permite que você navegue na blockchain, visualize todas as transações e seus status. Ao conectar o Voyager à sua carteira, você poderá transmitir suas transações por meio de sua carteira.
  • Para executar transações no testnet Goerli StarkNet você precisará de ETH da testnet para pagar pelo gás. Para obter alguns, vá para o faucet e siga as instruções. Pode levar alguns minutos, mas você receberá L2 Goerli ETH em sua carteira que você pode usar para executar transações na testnet.

Resolvendo exercícios e ganhando pontos

Cada exercício é um contrato inteligente. Contém código que, quando executado corretamente, distribuirá pontos para seu endereço. ​ Pontos são distribuidos pela função distribute_points() enquanto a função validate_exercise grava que você concluiu o exercício (você só pode receber os pontos uma vez). Seu objetivo é:

Graph ​ ​

Usando Voyager

Para este tutorial, vamos interagir com nossos contratos por meio do Voyager, Explorador de blocos da StarkNet. Certifique-se de conectar o Voyager a sua carteira! Isso permitirá que você realize suas transações.

Ao procurar um contrato/transação, certifique-se sempre de estar na versão Goerli do Voyager!

​ ​

Exercícios e seus contratos

Tópico Código do contrato Contrato no Voyager
Contador de pontos Contador de pontos Link
Sintaxe geral Ex01 Link
Variáveis ​​de armazenamento, getters, asserts Ex02 Link
Lendo e armazenando variáveis ​​de armazenamento Ex03 Link
Mapeamentos Ex04 Link
Variável de visibilidade Ex05 Link
Visibilidade das funções Ex06 Link
Comparando valores Ex07 Link
Recursões nível 1 Ex08 Link
Recursões nível 2 Ex09 Link
Componibilidade Ex10 Link
Importando funções Ex11 Link
Eventos Ex12 Link
Privacidade na StarkNet Ex13 Link
Multichamada Ex14 Link

Contando seus pontos

​ Seus pontos serão creditados na sua carteira; embora isso possa levar algum tempo. Se você deseja monitorar sua contagem de pontos em tempo real, também pode ver seu saldo no Voyager! ​

  • Vá para Contador de pontos no Voyager, na aba de "read contract".
  • Coloque o endereço da sua carteira na função "balanceOf".

Você também pode ver seu progresso geral aqui. ​

Status da transação

​ Você enviou uma transação e ela é mostrada como "não detectada" na Voyager? Isso pode significar duas coisas: ​

  • Sua transação está pendente e será incluída em um bloco em breve e então será visível na Voyager.
  • Sua transação era inválida e NÃO será incluída em um bloco (não existe uma transação com falha no StarkNet). ​ Você pode (e deve) verificar o status de sua transação com a seguinte URL https://alpha4.starknet.io/feeder_gateway/get_transaction_receipt?transactionHash=, onde você pode anexar seu hash de transação. ​ ​

Reproduzindo esse projeto

  • Clone o repositório na sua máquina
  • Configure o ambiente seguindo essas instruções.
  • Instale Nile.
  • Teste se você pode compilar o projeto.
nile compile