Основы Solidity

Первый показатель гильдии

Начните контракт BuildersGuild с первого публичного числового значения.

EASY
beginner
variables
state
Сводка урока
Урок 1
Трек
Основы Solidity
Награда
100 XP
Режим
Практика с подсказками
Позиция в треке1/20

Дальше: Флаг регистрации

Теория урока

Первый показатель гильдии

EASY

EASY · Beginner · Variables · State

От идеи — к настоящему коду

До этого момента мы говорили о смарт-контрактах как о программах, которые работают в блокчейне. Теперь начинается основная часть курса: мы будем писать такие программы сами на Solidity.

На протяжении следующих уроков вы постепенно соберёте контракт BuildersGuild: добавите ему состояние, функции, участников, проверки, события и другие возможности.

Если вы уже понимаете, что такое блокчейн, транзакция, кошелёк, EVM и смарт-контракт — можно сразу продолжать.

Впервые в программировании или Solidity?

Перед этим курсом можно пройти необязательный вводный курс. Там без сложного кода объясняется, как работают программы, блокчейн, транзакции, кошельки, EVM и смарт-контракты. После него происходящее в редакторе будет гораздо понятнее.

Первая переменная BuildersGuild

Смарт-контракт может хранить данные в блокчейне.

В Solidity данные, которые принадлежат контракту и сохраняются между транзакциями, называются state variables — переменными состояния.

Начнём с простого показателя гильдии:

ini
1guildScore = 100

Наша задача — записать это уже не как схему, а как настоящий Solidity-код.

Тип uint256

В Solidity каждой переменной необходимо указать, какие данные она может хранить.

Для целых неотрицательных чисел используется тип:

1uint256

Например:

1uint256 points = 10;

Здесь:

uint256 — тип значения, points — имя переменной, 10 — её начальное значение, а ; завершает инструкцию.

Что значит public

Мы хотим иметь возможность прочитать показатель гильдии извне, поэтому добавим:

1public

Например:

1uint256 public points = 10;

Для public state variable Solidity автоматически создаёт функцию, через которую внешнее приложение может узнать её значение.

Важно: public не означает, что любой пользователь может изменить переменную. Речь только о доступе к её значению для чтения.

Где находится состояние

Переменная состояния объявляется внутри контракта, но вне функций:

1contract Example {
2 uint256 public points = 10;
3}

После развёртывания контракта её значение становится частью его состояния.

В следующих уроках мы научимся изменять это состояние с помощью функций.

Как читать такую строку

Посмотрите на пример:

1uint256 public points = 10;

Его можно прочитать практически обычным языком:

Создай публичную переменную points, которая хранит неотрицательное целое число и начинается со значения 10.

Общая форма выглядит так:

1тип → доступ → имя → начальное значение

Что уже есть в редакторе

Часть файла подготовлена заранее:

1// SPDX-License-Identifier: MIT
2pragma solidity ^0.8.0;
3
4contract BuildersGuild {
5
6}

Пока вам не нужно запоминать назначение каждой строки.

Главное сейчас — увидеть contract BuildersGuild { ... } как границы нашей программы. Именно внутри них мы будем постепенно создавать гильдию.

Ваша задача

Создайте первую state variable контракта:

  • тип — uint256;
  • доступ — public;
  • имя — guildScore;
  • начальное значение — 100.

Заполните пропуски в редакторе и запустите проверку.

1uint256 public __________ = ___;

Редактор Solidity

Пишите и проверяйте решение в одном рабочем пространстве.

Требуется вход

Войдите, чтобы отправлять решения, сохранять последний код и синхронизировать прогресс.