Читать книгу Ethereum: работа с сетью, смарт-контракты и распределенные приложения - Алексей Бурков - Страница 8
Неделя № 1. Развертывание рабочего окружения («песочницы») для создания и тестирования смарт-контрактов на языке программирования Solidity
Урок 6. Подключение тестового проекта в VS Code к эмулятору Ganache и проверка работы эмулятора
ОглавлениеАннотация. В данном уроке мы подключим наш тестовый проект в VS Code к эмулятору блокчейн-сети, опубликуем его в нашей виртуальной сети и протестируем его работу.
Теперь перейдем к подключению нашего тестового проекта, созданного нами ранее в VS Code. Сверните окно Ganache, но не закрывайте его! Запустите VS Code и на панели EXPLORER в нашем тестовом проекте METACOIN откройте файл truffle-config.js, в центре окна отобразится его содержимое (рис. 1.6.1).
Рис. 1.6.1
Файл truffle-config.js содержит настройки подключения проекта к блокчейн-сети. Обратите внимание на то, что почти все строки в этом файле сейчас отключены. Они помечены символами «//», как комментарии. Давайте включим некоторые строки. Удалите символы «//» у строк с номерами 8–12, 18, 19 и 21, как на рис. 1.6.2.
Рис. 1.6.2
Мы можем видеть, что параметры подключения к сети «host» и «port» совпадают с параметрами HOSTNAME и PORT NUMBER из окна настроек Ganache (урок 5, см. рис. 1.5.13). Параметр network_id мы оставили как «*» (любой), хотя его можно было задать как параметр NETWORK ID из окна настроек Ganache, т. е. «5777». Сохраните изменения в файле с настройками, выбрав в оконном меню VS Code пункт File/Save (рис. 1.6.3).
Рис. 1.6.3
После подключения нашего проекта к эмулятору необходимо подключить эмулятор к нашему проекту, т. к. пока проект «видит» эмулятор, а эмулятор «не видит» наш проект. Для подключения эмулятора к проекту в окне Ganache откройте вкладку CONTRACTS. Мы видим, что эмулятор «не видит» наши тестовые смарт-контракты. Для подключения проекта нажмите кнопку LINK TRUFFLE PROJECTS в центре вкладки CONTRACTS (рис. 1.6.4).
Рис. 1.6.4
Появится окно с настройками эмулятора и открытой вкладкой WORKSPACE (рис. 1.6.5).
Рис. 1.6.5
Теперь нажмите кнопку ADD PROJECT (рис. 1.6.5), в появившемся окне выбора файла выберите файл «truffle-config.js» нашего проекта METACOIN и нажмите кнопку «Открыть» (рис. 1.6.6).
Замечание. По умолчанию все проекты VS Code сохраняются в папке «Мои документы / VS Code».
Рис. 1.6.6
Окно настроек Ganache примет вид как на рис. 1.6.7. В поле «TRUFFLE PROJECTS» появится путь к нашему тестовому проекту MetaCoin (рис. 1.6.7).
Рис. 1.6.7
Для сохранения результатов нажмите кнопку SAVE AND RESTART (рис. 1.6.7), расположенную в верхнем правом углу окна настроек. Затем в окне Ganache перейдите на вкладку CONTRACTS. Она примет вид как на рис. 1.6.8.
Рис. 1.6.8
Видно, что наш эмулятор «увидел» наш проект. На вкладке CONTRACTS появились смарт-контракты нашего тестового проекта: ConvertLib, MetaCoin и Migrations. Мы видели файлы этих смарт-контрактов в окне VS Code на панели EXPLORER (рис. 1.6.2). Однако наш проект не опубликован, около наших смарт-контрактов стоит надпись Not Deployed (рис. 1.6.8).
Наш следующий шаг – это публикация нашего тестового проекта в виртуальной блокчейн-сети. Для этого откройте панель терминала и в ней выполните команду публикации проекта в блокчейн-сети «truffle migrate». Окно VS Code примет вид как на рис. 1.6.9.
Рис. 1.6.9
Здесь можно видеть, что наши тестовые смарт-контракты были опубликованы и в окне терминала отобразились параметры публикации. Боле того, если посмотреть на вкладку CONTRACTS эмулятора, то можно видеть, что контракты опубликованы, т. е. перешли в статус DEPLOYED и получили свои адреса (рис. 1.6.10).
Рис. 1.6.10
Замечание. Если на вкладке CONTRACTS нажать на кнопку DEPLOYED, расположенную справа от смарт-контракта, то можно посмотреть статистику его работы.
Если открыть вкладку TRANSACTIONS, то мы увидим список транзакций, которые опубликовали наши тестовые смарт-контракты (рис. 1.6.11).
Рис. 1.6.11
На вкладке BLOCKS можно увидеть, что произошел процесс майнинга шести блоков и было потрачено определенное количество газа (рис. 1.6.12).
Рис. 1.6.12
И наконец, на вкладке ACCOUNTS мы видим, что с нашего первого кошелька было списано 0,02 ETH в качестве оплаты пяти транзакций, т. е. публикации наших трех тестовых смарт-контрактов (рис. 1.6.13).
Рис. 1.6.13
В заключение данной темы проведем тестирование смарт-контрактов нашего проекта MetaCoin. В этом случае будет запущен специальный тестирующий смарт-контракт TestMetaCoin.sol, находящийся в папке test нашего проекта. Для запуска теста выполните в терминале команду «truffle test» (рис. 1.6.14).
Рис. 1.6.14
Произойдет компиляция и выполнение смарт-контракта TestMetaCoin.sol, а на вкладке EVENTS эмулятора появится событие (рис. 1.6.15).
Рис. 1.6.15