Читать книгу Ethereum: работа с сетью, смарт-контракты и распределенные приложения - Алексей Бурков - Страница 9
Неделя № 1. Развертывание рабочего окружения («песочницы») для создания и тестирования смарт-контрактов на языке программирования Solidity
Урок 7. Установка плагина MetaMask для работы с криптокошельками
ОглавлениеАннотация. В данном уроке рассматривается процедура установки плагина для работы с криптокошельками MetaMask для браузера Chrome [5]. Также рассматривается подключение и тестирование плагина с эмулятором блокчейн-сети Ganache.
В заключение настройки нашего окружения установим специальный плагин для браузера MetaMask, при помощи которого мы будем совершать транзакции в нашей виртуальной блокчейн-сети. Для начала откройте в браузере веб-страницу, расположенную по адресу https://MetaMask.io/ (рис. 1.7.1).
Рис. 1.7.1
В данном уроке мы будем работать в браузере Chrome. Поэтому на странице сайта MetaMask перейдите по ссылке GET CHROME EXTENSION (рис. 1.7.1). Откроется страница для скачивания расширения MetaMask, расположенная в интернет-магазине Chrome. Нажмите кнопку «Установить» (рис. 1.7.2).
Замечание. Если у вас браузер, отличный от Chrome, то для установки расширения необходимо перейти по соответствующим ссылкам, расположенным под надписью GET CHROME EXTENSION (см. рис. 1.7.1)
Рис. 1.7.2
Появится окно с запросом разрешения на установку расширения. Нажмите кнопку «Установить расширение» (рис. 1.7.3).
Рис. 1.7.3
После завершения установки расширения откроется стартовая страница MetaMask, на которой необходимо нажать кнопку «Начать» (рис. 1.7.4).
Замечание. Получить доступ к плагину также можно через иконку плагина в верхнем правом углу окна Chrome (рис. 1.7.4).
Рис. 1.7.4
Далее появится страница, где можно создать новый кошелек или импортировать существующий при помощи кодовой фразы. Давайте создадим новый кошелек, нажав кнопку «Создать кошелек» (рис. 1.7.5).
Замечание. Вновь созданный кошелек будет работать в публичной открытой сети Ethereum. Мы же будем работать в эмуляторе Ganache, поэтому далее мы импортируем наши кошельки из эмулятора, и этот новый кошелек нам будет не нужен. Однако для продолжения работы с MetaMask нам необходимо его создать или импортировать существующий.
Рис. 1.7.5
Появится страница с вопросом о сборе статистики для улучшения плагина. Здесь необходимо нажать кнопку I agree (рис. 1.7.6).
Рис. 1.7.6
Для начала задайте пароль вашего нового криптокошелька, согласитесь с условиями использования плагина и нажмите кнопку «Создать» (рис. 1.7.7).
Рис. 1.7.7
Появится страница с секретной фразой для подключения нового кошелька. Для того чтобы получить доступ к данному кошельку с другого компьютера или при переустановке плагина, необходима секретная фраза кошелька. Ее можно увидеть, нажав на изображение замка на данной странице. Поскольку мы будем работать с кошельками эмулятора Ganache, нам эта фраза неинтересна. Нажмите кнопку «Напомнить позже» (рис. 1.7.8).
Рис. 1.7.8
Далее откроется страница нашего нового криптокошелька Account 1 (рис. 1.7.9). Мы видим, что в данном кошельке 0 ETH. Если нажать выпадающий список в верхнем правом углу страницы, можно увидеть, что кошелек подключен к основной сети Ethereum. Но нам необходимо подключиться к нашей виртуальной сети, созданной в эмуляторе Ganache. Для этого в списке сетей выберите пункт «Пользовательский RPC» (рис. 1.7.9).
Рис. 1.7.9
Откроется страница с настройками для подключения к новой сети. Здесь необходимо ввести имя подключаемой сети на ваше усмотрение, я задал MyNet. Затем необходимо определить адрес и порт нашей виртуальной сети «Новый RPC URL». Адрес и порт отображаются в верхней части окна эмулятора Ganache (рис. 1.7.10).
Рис. 1.7.10
«Закрыть» (крестик в верхнем правом углу) (рис. 1.7.11).
Рис. 1.7.11
Теперь импортируем наши кошельки из эмулятора. Для этого щелкните по цветному кругу в верхнем правом углу страницы нового кошелька и в появившемся меню выберите пункт «Импортировать счет» (рис. 1.7.12).
Рис. 7.12
Появится страница импортирования «Новый счет» (рис. 1.7.13).
Рис. 1.7.13
На данной странице необходимо указать закрытый ключ нашего кошелька из эмулятора. Для получения ключа в окне эмулятора Ganache щелкните по ключу напротив первого кошелька (рис. 1.7.10) и в появившемся окне ACCOUNT INFORMATION скопируйте в буфер обмена параметр Private key (рис. 1.7.14), а затем вставьте его из буфера обмена в поле «Вставьте ваш закрытый ключ тут:» на странице MetaMask (рис. 1.7.13).
Рис. 1.7.14
Для импорта на странице MetaMask нажмите кнопку «Импортировать» (рис. 1.7.13). Итак, мы импортировали наш первый кошелек из эмулятора. При импортировании он получил имя Account 2. Импортируйте второй кошелек из нашего эмулятора в MetaMask. Для этого повторите все действия начиная с рис. 1.7.12. Только скопируйте Private key не первого кошелька, а второго. В итоге при щелчке по цветному кругу на странице MetaMask выпадающее меню будет выглядеть как на рис. 1.7.15.
Рис. 1.7.15
Обратите внимание на то, что сейчас мы имеем три счета. Один, Account 1, подключен к публичной сети Ethereum, а два других, Account 2 и Account 3, подключены к эмулятору Ganache и на этих счетах находится по 100 ETH. Окно эмулятора закрывать нельзя!
Замечание. Если мы не перезапускали эмулятор, то на наших счетах будет не 100 ETH, а несколько меньше, так как ранее мы тестировали демонстрационный проект.
Теперь протестируем работу плагина MetaMask в связке с эмулятором Ganache. Для этого совершим транзакцию, то есть переведем 10 ETH со счета Account 3 на счет Account 2. Перевод средств инициализируется нажатием кнопки «Отправить» на странице MetaMask (рис. 1.7.16).
Рис. 1.7.16
Появится окно выбора получателя. Здесь можно указать адрес кошелька получателя, например, с рис. 1.7.14. Однако мы переводим между своими кошельками, поэтому перейдем по ссылке «Перевод между моими аккаунтами» (рис. 1.7.17).
Рис. 1.7.17
Появится список наших счетов, где выбираем Account 2 (рис. 1.7.18).
Рис. 1.7.18
Появится страница параметров транзакции (рис. 1.7.19). Здесь мы определим сумму 10 ETH и комиссию за перевод как «Средний» (чем быстрее перевод, тем он дороже). Нажмите кнопку «Далее».
Рис. 1.7.19
Далее появится страница подтверждения транзакции (рис. 1.7.20). На данной странице мы видим, что мы переводим 10 ETH со счета Account 3 на счет Account 2. Комиссия за перевод будет равна 0,000034 ETH. Для подтверждения транзакции нажмите кнопку «Подтвердить» (рис. 1.7.20).
Рис. 1.7.20
Посмотрим на результат нашей транзакции. Если зайти в меню наших счетов, то мы можем увидеть, что на счету Account 2 стало 110 ETH, а на счету Account 3 – 89,999966 ETH (рис. 1.7.21).
Рис. 1.7.21
Если открыть окно эмулятора, то мы видим аналогичную картину. С одного кошелька на другой кошелек было переведено 10 ETH (рис. 1.7.22).
Рис. 1.7.22