Разворачиваем смарт-контракт в тестовой сети Zksync Era
Текущая версия 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
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
Добавляем сеть 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");
И у нас последняя команда для деплоя контракта
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, еще будет много интересной информации.