Ethereum: работа с сетью, смарт-контракты и распределенные приложения. Алексей Бурков. Читать онлайн. Newlib. NEWLIB.NET

Автор: Алексей Бурков
Издательство: ЛитРес: Самиздат
Серия:
Жанр произведения: Учебная литература
Год издания: 2020
isbn:
Скачать книгу
target="_blank" rel="nofollow" href="#i_107.jpg"/>

      Рис. 2.2.8

      На этом мы заканчиваем урок, посвященный созданию проекта на языке программирования смарт-контрактов Solidity. В следующем уроке мы напишем наш первый смарт-контракт на языке Solidity.

      Урок 3. Создаем наш первый смарт-контракт Hello World

      Аннотация. Теперь давайте создадим наш первый смарт-контракт. По традиции пусть это будет «Hello World!!!», т. е. смарт-контракт будет выводить сообщение «Hello World!!!» [11].

      Для начала мы создадим пустой смарт-контракт, а затем поместим в него необходимый код.

      Для создания нового смарт-контракта HelloWorld в терминале наберите команду «truffle create contract “HelloWorld”» и нажмите клавишу Enter (рис. 2.3.1).

      Рис. 2.3.1

      После выполнения команды в нашем проекте появится новый файл смарт-контракта HelloWorld.sol. Давайте рассмотрим его содержимое. Откройте смарт-контракт, щелкнув по нему на панели EXPLORER. Окно VS Code примет вид как на рис. 2.3.2.

      Рис. 2.3.2

      Здесь мы видим шаблон нового пустого смарт-контракта. Рассмотрим данный шаблон подробнее.

      Замечание. Синтаксис языка Solidity очень похож на синтаксис таких языков программирования, как JavaScript и Java. Поэтому если вы знаете эти языки программирования, то вы без труда поймете код смарт-контрактов.

      Из каких же частей состоит новый смарт-контракт? Первая строка «pragma solidity ^0.5.0;» задает версию языка программирования Solidity, которую мы используем. В нашем случае это версия 0.5.0. Так как язык программирования Solidity постоянно развивается, то со временем эта версия будет обновляться в сторону увеличения.

      Далее мы видим строку «contract HelloWorld {» – это начало нашего смарт-контракта HelloWorld (рис. 2.3.3).

      Замечание. Символ «{» показывает начало блока кода, а символ «}» в строке номер 7 показывает окончание блока кода, то есть начало и конец смарт-контракта HelloWorld. В языке Solidity блок кода группирует команды, и они рассматриваются как одна команда. В строках номер 4 и 6 данные символы обозначают начало и конец функции.

      Рис. 2.3.3

      Наш смарт-контракт содержит функцию sayHello. Она определяется командой «function sayHello() public pure returns (string memory)».

      Команда function определяет функцию и имеет следующее строение:

      • sayHello() – имя функции, наша функция не имеет входных параметров, поэтому область определения параметров пуста (). Позже мы рассмотрим функции с параметрами;

      • public – это область видимости функции, означает, что мы можем использовать эту функцию в любом месте кода смарт-контракта;

      • pure – определяет, что для выполнения нашего смарт-контракта не требуется эфир;

      • returns (string memory) – показывает, что наша функция возвращает строку (HelloWorld – это string). Запись результата происходит в память, а не в блок, поэтому указываем параметр «memory».

      Ну и наконец, рассмотрим содержимое нашей функции sayHello. Она состоит только из одной команды «return “Hello World!!!”;». Команда return выводит результат работы функции. В нашем случае это строка “Hello World!!!”. Строка заключается в кавычки. В языке Solidity любая команда заканчивается знаком «;» (рис. 2.3.3).

      Замечание. Как мы можем видеть, язык программирования смарт-контрактов Solidity по синтаксису очень похож на языки программирования JavaScript и Java.

      Теперь давайте откомпилируем