diff --git a/README.md b/README.md index c1219af..cfc7865 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,19 @@ # Flow 101 Quest 🪄 -> 🌐 Other Languages: [简体中文](README_ZH.md) +> Other Languages: +> - 🇨🇳 - [简体中文](README_ZH.md) +> - 🇷🇺 - [Russian](README_RU.md) -The goal of this quest is to practice interactive with smart contracts on Flow. In this quest we will be interacting with the [Yearbook](https://flow-view-source.com/testnet/account/0x63ffd70144f80d07/contract/YearbookMinter) contract. The theory behind this contract (as well as some introductory Cadence concepts) are covered in [THEORY.md](https://github.com/onflow/flow-101-quest/blob/main/THEORY.md). +The goal of this quest is to practice interaction with smart contracts on Flow. In this quest we will be interacting with the [Yearbook](https://flow-view-source.com/testnet/account/0x63ffd70144f80d07/contract/YearbookMinter) contract. The theory behind this contract (as well as some introductory Cadence concepts) are covered in [THEORY.md](https://github.com/onflow/flow-101-quest/blob/main/THEORY.md). -This README contains a practical quest. Anyone who completes this quest will receive a Soulbound Proof-of-Knowledge NFT. +This README contains a practical part of the quest. Anyone who completes this quest will receive a Soulbound Proof-of-Knowledge NFT. ## Quest Overview 📖 1. Create a Testnet Account 2. Interact with a smart contract -- - Sign transactions (mutate the chain) -- - Execute scripts (query the chain) + - Sign transactions (mutate the chain) + - Execute scripts (query the chain) ## What You'll Learn 💻 1. Learn how to use Flow CLI, an essential tool as a Flow developer @@ -41,7 +43,7 @@ Assuming you know the basics of a command line, it will take approximately 15 mi **Install/Update the Flow CLI**: you **will** need the Flow CLI to complete this quest. Visit the [Flow CLI Installation](https://developers.flow.com/tools/flow-cli/install) documentation and follow the instructions. You simply need to run a single command in your terminal to install it. If you already have it installed, make sure it’s the latest version (check that page for updating instructions). -#### >> [Install or upgrade the Flow CLI before starting this quest](https://developers.flow.com/tools/flow-cli/install) << +#### \>> [Install or upgrade the Flow CLI before starting this quest](https://developers.flow.com/tools/flow-cli/install) << **Clone this repo** (optional): This repo already provides the completed transactions and scripts in order to complete the quest. The recommended way to follow along is to clone the repo. Alternatively, you can download the repo or follow along by creating the necessary files manually. You can clone the repo by using this command: diff --git a/README_RU.md b/README_RU.md new file mode 100644 index 0000000..f81aa2b --- /dev/null +++ b/README_RU.md @@ -0,0 +1,186 @@ +# Flow 101 - Квест + +> Other Languages: +> - 🇨🇳 - [简体中文](README_ZH.md) +> - 🌐 - [English](README.md) + +Цель данного квеста в тренировке навыков взаимодействия со смарт-контрактами на цепи Flow. +В этом квесте вы будете взаимодействовать c контрактом [YearbookMinter][Yearbook](https://flow-view-source.com/testnet/account/0x63ffd70144f80d07/contract/YearbookMinter). +Теория необходимая для понимания этого контракта (а также немного базовых концептов языка Cadence) находится внутри +файла [THEORY_RU.md](/THEORY_RU.md). + +Данный файл содержит практическую часть квеста. Любой кто выполните его получит **`Недвижимый Токен Доказательства +Знания`** *(Soulbound Proof-of-Knowledge NFT)* + +## Обзор Квеста 📖 +1. Создание Testnet аккаунта +2. Взаимодействие с контрактом + - Подпись транзакции (изменение состояния цепи) + - Выполнение скриптов (запрос состояния цепи) + +## Чем Вы Научитесь 💻 +1. Как использовать Flow CLI - фундаментальный инструмент разработчика на Flow +2. Как создать аккаунт на тестовой - Testnet - цепи Flow +3. Как отправлять транзакции, например, как подписать 'Ежегодника Flow' (*Flow Yearbook*) + +## Приз 🏆 + +[](https://floats.city/andrea.find/event/482557017) + +Все кто выполнит этот квест получит **[супер-эксклюзивный недвижимый токен доказательства +знания"](https://floats.city/andrea.find/event/482557017)**. Кроме того, что им можно похвастаться, он также даст +доступ к закрытым каналам на официальном Discord Flow. + +*Заметка: Тип NFT, который мы используем - [FLOATs](https://floats.city/) - поддерживается Instagram, так что вы +сможете поделиться своим достижением с друзьями, членами семьи и коллегами! + +## Часто Задаваемые Вопросы ❓ + +#### Кто может участвовать в этом квесте? +Абсолютно все! Вам не нужно подходить по каким-либо параметрам :) Просто начни! + +#### Как много времени займет выполнение задания? +Если считать, что вы умеете пользоваться коммандной строкой - порядка 15 минут! + +## Шаг 0 - Необходимый "реквизит" +**Установите / Обновите Flow CLI**: Вам **понадобится** установленный Flow CLI для того, чтобы выполнить квест. +Перейдите на страницу [Установка Flow CLI (ENG)](https://developers.flow.com/tools/flow-cli/install) и следуйте +указаниям. Вам всего-лишь надо будет выполнить одну комманду через терминал для установки Flow CLI. Если же он у вас +уже установлен, убедитесь, что используете последнюю доступную версию (на той же странице вы можете найти инструкцию +по обновлению) + +#### \>> [Установите или Обновите Flow CLI прежде чем начать квест](https://developers.flow.com/tools/flow-cli/install) << + +**Клонируйте данный репозиторий** (по желанию): Данный репозиторий предоставит вам готовые транзакции и скрипты для +выполнения квеста. Рекомендуемый нами способ - это клонирование репозитория. В качестве альтернативы, вы можете +скачать репозиторий и создать необходимые файлы вручную. Для того чтобы клонировать данный репозиторий, используйте +следующую команду: + +```sh +git clone https://github.com/onflow/flow-101-quest +cd flow-101-quest +``` + +## Шаг 1 - Запустите Flow CLI +Для того чтобы использовать Flow CLI в полную силу вам надо инициализировать его созданием конфигурационного файла. +Перейдите в свою рабочую папку - откуда вы будете запускать Flow CLI - и выполните следующюю команду в терминале: + +``` +flow init +``` + +Вы должны увидеть что-то похожее: + +``` +Configuration initialized +Service account: 0xf8d6e0586b0a20c7 + +Start emulator by running: 'flow emulator' +Reset configuration using: 'flow init --reset' +``` + +## Шаг 2 - Создайте свой аккаунт на Testnet + +Прежде чем приступить к подписи Ежегодника, нам понадобиться аккаунт! К счастью для нас мы можем выполнить +простую команду в Flow CLI: + +``` +flow accounts create +``` + +Вот как будет выглядеть процесс: +##### 1. Назовите свой аккаунт (используйте латинские буквы) +Назовите свой аккаунт `hero` - **Герой** - и нажмите Enter. Дальше следуйте указаниям на экране. + +``` +Enter an account name: hero +``` + +> 💡 Вы можете выбрать другое имя, мы просто будем использовать это для того, чтобы ваш опыт был похож на то, что мы +> описываем в этой инструкции. Если вы решите использовать другое имя, предполагайте, что вместо `hero` должно +> стоять ваше имя аккаунта и адрес + +##### 2. Выберите в качестве сети Flow Testnet +При помощи стрелочек выберите нужную сеть - **Flow Testnet** - и затем нажмите +Enter + +``` +Use the arrow keys to navigate: ↓ ↑ → ← +? Choose a network: + Local Emulator + ▸ Flow Testnet + Flow Mainnet +``` + +##### 3. Сохраните информацию об аккаунте, +Далее вашем вниманию будет предоставлен шаг подтверждения. Нажмите y и затем Enter. + +``` +✔ Flow Testnet + +❗ This command will perform the following: + - Generate a new ECDSA P-256 public and private key pair. + - Save the private key to hero.private.json and add it to .gitignore. + - Create a new account on Flow Testnet paired with the public key. + - Save the newly-created account to flow.json. + + +? Do you want to continue? [y/N] y +``` + +##### 4. Пополните свой Testnet аккаунт + +``` +Please complete the following steps in a web browser: + 1. Complete the captcha challenge. + 2. Click the 'Create Account' button. + 3. Return to this window. + +✔ Press to open in your browser...: █ + +``` +После того как вы нажмете Enter, вам бразуер автоматически будет перенаправлен на [Flow Testnet Faucet] +(https://testnet-faucet.onflow.org/), где вся необходимая информация уже будет заполнена. Единственное, что остается +сделать это: + +``` + +Please complete the following steps in a web browser: + 1. Complete the captcha challenge. + 2. Click the 'Create Account' button. + 3. Return to this window. + +You can also navigate to the link manually: https://testnet-faucet.onflow.org/?key= + +Waiting for your account to be created, please finish all the steps in the browser... + +``` + +- Выполнить CAPTCHA задание +- Нажать на кнопку `Create Account` +- Вернуться к окну терминала + + ![Пополнение аккаунта при помощи "крана"](https://i.imgur.com/P6hyGlk.gif) + +##### 6. Все готово! + +``` +🎉 New account created with address 0xebeb17c521a0d375 and name hero. + +Here’s a summary of all the actions that were taken: + - Added the new account to flow.json. + - Saved the private key to hero.private.json. + - Added hero.private.json to .gitignore. +``` + +После того как выполните эти шаги, вы заметите, что у вас появилось 2 новых файла в вашей директории: + +1. `flow.json` +2. `hero.private.json` + +Flow CLI также обновил конфигурационный файл `flow.json` ссылкой на второй файл `hero.private.json`, который +содержит личный (private) ключ аккаунта. Файл с личным ключом автоматически добавиться в `.gitignore` файл, чтобы вы +ненароком его не опубликовали. + +Если вы откроете файлы, вы сможете найти личный ключ и адрес своего аккаунта 👍! + diff --git a/THEORY.md b/THEORY.md index 7ff1e77..7fa34cc 100644 --- a/THEORY.md +++ b/THEORY.md @@ -1,12 +1,15 @@ # Intro to Cadence and the Yearbook Contract 📚 -> 🌐 Languages: [简体中文](/THEORY_ZH.md) +> Languages: +> - [简体中文](/THEORY_ZH.md) +> - [Russian](/THEORY_RU.md) ## Introduction Today we will learn Cadence basics by creating a basic contract. We'll use the concept of a Yearbook to illustrate a lot of Cadence's strengths over other programming languages. -> 🍬 You can jump righ into a live version of the code in this sandbox on the [Playground](https://play.onflow.org) - [https://play.onflow.org/bbcdce0a-ea52-449f-bc0e-4fddd5079f9e](https://play.onflow.org/bbcdce0a-ea52-449f-bc0e-4fddd5079f9e) +> 🍬 You can jump right into a live version of the code in this sandbox on the [Playground](https://play.onflow.org) +- [https://play.onflow.org/bbcdce0a-ea52-449f-bc0e-4fddd5079f9e](https://play.onflow.org/bbcdce0a-ea52-449f-bc0e-4fddd5079f9e) ## Step 1 - Basic Contract diff --git a/THEORY_RU.md b/THEORY_RU.md new file mode 100644 index 0000000..1d4f16c --- /dev/null +++ b/THEORY_RU.md @@ -0,0 +1,14 @@ +# Введение в Cadence и Контракт YearbookMinter + +## Вступление +Сегодня мы будем изучать основы языка программирования Cadence и создадим простой контракт. Мы воспользуемся +концецией Ежегодника (Yearbook) дабы продемонстрирвоать множество сильных сторон этого языка. + +> 🍬 ВЫ можете перейти сразу же к "живой" версии кода на [Playground](https://play.onflow.org): +> +> [https://play.onflow.org/bbcdce0a-ea52-449f-bc0e-4fddd5079f9e](https://play.onflow.org/bbcdce0a-ea52-449f-bc0e-4fddd5079f9e) + +## Шаг 1 - Базовый Контракт +В этом уроке, мы будем использовать Cadence-"песочницу" [Flow Playground](https://play.onflow.org), которая +предоставляет симулируемое окружение цепи Flow, где мы с легкостью можем эксперементировать с языком Cadence, +тразакциями и скриптами!