Основы Solidity
Первый показатель гильдии
Начните контракт BuildersGuild с первого публичного числового значения.
Дальше: Флаг регистрации
Первый показатель гильдии
EASY · Beginner · Variables · State
От идеи — к настоящему коду
До этого момента мы говорили о смарт-контрактах как о программах, которые работают в блокчейне. Теперь начинается основная часть курса: мы будем писать такие программы сами на Solidity.
На протяжении следующих уроков вы постепенно соберёте контракт BuildersGuild: добавите ему состояние, функции, участников, проверки, события и другие возможности.
Если вы уже понимаете, что такое блокчейн, транзакция, кошелёк, EVM и смарт-контракт — можно сразу продолжать.
Впервые в программировании или Solidity?
Перед этим курсом можно пройти необязательный вводный курс. Там без сложного кода объясняется, как работают программы, блокчейн, транзакции, кошельки, EVM и смарт-контракты. После него происходящее в редакторе будет гораздо понятнее.
Первая переменная BuildersGuild
Смарт-контракт может хранить данные в блокчейне.
В Solidity данные, которые принадлежат контракту и сохраняются между транзакциями, называются state variables — переменными состояния.
Начнём с простого показателя гильдии:
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: MIT2pragma solidity ^0.8.0;34contract BuildersGuild {56}Пока вам не нужно запоминать назначение каждой строки.
Главное сейчас — увидеть contract BuildersGuild { ... } как границы нашей программы. Именно внутри них мы будем постепенно создавать гильдию.
Ваша задача
Создайте первую state variable контракта:
- тип —
uint256; - доступ —
public; - имя —
guildScore; - начальное значение —
100.
Заполните пропуски в редакторе и запустите проверку.
1uint256 public __________ = ___;Редактор Solidity
Пишите и проверяйте решение в одном рабочем пространстве.
Требуется вход
Войдите, чтобы отправлять решения, сохранять последний код и синхронизировать прогресс.