В этой неделе мы рассмотрим состав проекта языка программирования смарт-контрактов Solidity [8], [9], создание и управление проектом, ознакомимся с основами синтаксиса языка Solidity и структурой смарт-контракта, а также разберем создание и запуск простейших смарт-контрактов.
Урок 1. Структура проекта Solidity в VS Code
Аннотация. В данном уроке мы рассмотрим файловую структуру проекта языка программирования смарт-контрактов Solidity. Будут рассмотрены все папки и файлы, входящие в проект, и описано их назначение.
Для начала рассмотрим более подробно файловую структуру проекта на языке программирования смарт-контрактов Solidity.
В языке программирования Solidity главная программная единица – это смарт-контракт. Смарт-контракт – это аналог программы в обычных языках программирования, именно смарт-контракт компилируется, публикуется и выполняется в блокчейн-сети Ethereum.
Перед тем как создавать смарт-контракты, нам необходимо создать проект в Truffle. Проект – это набор файлов и папок, необходимый для создания, публикации и выполнения смарт-контрактов. Давайте рассмотрим структуру проекта MetaCoin, который мы создали в предыдущих уроках.
Запустите VS Code и откройте проект MetaCoin. Для этого в окне VS Code на панели Explorer нажмите кнопку Open Folder (рис. 2.1.1).
Рис. 2.1.1
Появится окно выбора папки с проектом (рис. 2.1.2).
Рис. 2.1.2
Выберите папку «MetaCoin» и нажмите кнопку «Выбор папки».
Замечание. По умолчанию VS Code создает проекты в папке «Документы / VS Code».
После открытия проекта MetaCoin окно VS Code примет вид как на рис. 2.1.3.
Рис. 2.1.3
На панели EXPLORER мы видим файловую структуру проекта MetaCoin. Давайте рассмотрим структуру подробнее. Проект содержит четыре папки: build, contracts, migrations и test. Рассмотрим назначение этих папок.
Для начала рассмотрим папку contracts. Это самая главная папка проекта, в ней находятся файлы с кодом наших смарт-контрактов. Это файлы с расширением sol. В нашем случае в проекте MetaCoin в данной папке мы видим три файла: ConvertLib.sol, MetaCoin.sol и Migrations.sol. Хотелось бы отметить файл Migrations.sol (рис. 2.1.4).
Рис. 2.1.4
Этот файл предназначен для публикации других смарт-контрактов проекта в сети Ethereum. Изменять файл Migrations.sol не рекомендуется. Остальные два файла реализуют логику проекта.