March 5, 2023

Разворачиваем смарт-контракт в тестовой сети Zksync Era

Канал Blockside

Текущая версия zkSync Era удовлетворяет потребности большинства приложений на Ethereum. Обмен сообщениями смарт-контрактов L1 → L2: позволяет разработчикам передавать данные из Ethereum в смарт-контракты на zkSync, предоставляя необходимую информацию для запуска различных смарт-контрактов. Мы будем разворачивать смарт-контракт на ZkSync Era с помощью плагина Hardhat на Ubuntu 20.04.

Для разворачивания смарт-контракта нужен сервер с минимальными техническими характеристиками (например: Процессор: 1 core Память: 1 ГБ Хранилище: 30 ГБ Трафик: 32 ТБ). Такой сервер можно арендовать на Vdsina, Hetzner или Contabo.

Приступаем к разворачиванию смарт-контракта

Обновляем систему

sudo apt update
sudo apt upgrade

При установке нажимаем y

Устанавливаем загрузчик curl

sudo apt install -y curl

После обновления нашей системы и проверки зависимостей запустим скрипт установки для Node.js 18 (LTS)

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

После завершения работы скрипта устанавливаем Node.js 18

sudo apt install -y nodejs

Далее выполняем команды по очереди

mkdir greeter-example
cd greeter-example
apt install cmdtest

Нажимаем y

Добавляем сеть Zksync Era в метамаск на сайте

Пересылаем тестовые токены через мост с Goerli в сеть ZkSync Era на сайте.

Далее продолжаем набирать команды на сервере

npm init --y
npm install --save-dev hardhat
npm install -g [email protected]
npx hardhat

Выбираем Create a TypeScript project, затем Enter и несколько раз y

В процессе могут быть ошибки, не обращаем на них внимания

Продолжаем набирать дальше команды

mkdir greeter
cd greeter
npm init -y
npm add -D typescript ts-node @types/node ethers@^5.7.2 zksync-web3@^0.13.1 @ethersproject/hash @ethersproject/web hardhat @matterlabs/hardhat-zksync-solc @matterlabs/hardhat-zksync-deploy
vim hardhat.config.ts

Откроется страница, на которой нужно нажать английскую i для редактирования

Копируем текст по этой ссылке и вставляем в окно. Далее нажимаем Esc и :wq

Продолжаем набирать команды

mkdir contracts
mkdir deploy
vim contracts/Greeter.sol

Снова откроется страница для редактирования. Нажимаем снова i и вставляем текст из этой ссылки. Далее нажимаем Esc и :wq

Продолжаем набирать команды

npx hardhat compile
vim deploy/deploy.ts

Снова откроется страница для редактирования. Нажимаем снова i и вставляем текст из этой ссылки под пунктом 6, только в строчке const wallet = new Wallet("<WALLET-PRIVATE-KEY>"); меняем <WALLET-PRIVATE-KEY> на свой приватный ключ метамаска. Чтобы выглядело вот так: const wallet = new Wallet("4362462424624624");

Далее нажимаем Esc и :wq

И у нас последняя команда для деплоя контракта

npx hardhat deploy-zksync

Ждем некоторое время до появления текста

Greeter was deployed to ваш номер метамаска
Contract greets us with Hi there!!
Contract greets us with Hey guys!

После этого можно переходим в эксплорер вводим номер своего метамаска и видим три транзакции, т.к. после команды деплоя сразу происходит еще и взаимодействие с контрактом.

Поздравляю, смарт-контракт развернут!

Если не хотите менять сервер, то можно снова набрать команду

vim deploy/deploy.ts

И вставить приватный ключ от другого метамаска

Затем снова задеплоить контракт

npx hardhat deploy-zksync

На этом все. Подписывайтесь на ютуб и телеграмм каналы Blockside, еще будет много интересной информации.